From: Ferry Huberts <redacted>
Currently the plugin does not setup core.bare=false and also does not setup
the default (pull) remote branch for master, two things that git-clone does
do.
The first ommision is not a problem, but seconds is. When using git-clone
it by default sets up the master to pull from the remote master.
This patch series fixes both issues and makes the plugin setup a cloned
repository exactly the same as git-clone.
Ferry Huberts (2):
Make sure to set core.bare to false when cloning
Make sure to set up the default (pull) remote branch for master
.../org/spearce/egit/core/op/CloneOperation.java | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
From: Ferry Huberts <redacted>
This is to make sure that the git plugin sets up a clone
in the same fashion as the CLI git clone command.
Signed-off-by: Ferry Huberts <redacted>
---
.../org/spearce/egit/core/op/CloneOperation.java | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
From: Ferry Huberts <redacted>
This is to make sure that the git plugin sets up a clone
in the same fashion as the CLI git clone command.
Signed-off-by: Ferry Huberts <redacted>
---
.../org/spearce/egit/core/op/CloneOperation.java | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
@@ -154,6 +154,9 @@ private void doInit(final IProgressMonitor monitor)remoteConfig.addFetchRefSpec(wcrs.expandFromSource(ref));}+/* we're setting up for a clone with a checkout */+local.getConfig().setBoolean("core",null,"bare",false);+remoteConfig.update(local.getConfig());local.getConfig().save();}
From: Shawn O. Pearce <hidden> Date: 2016-06-15 22:46:16
ferry.huberts@pelagic.nl wrote:
From: Ferry Huberts <redacted>
This is to make sure that the git plugin sets up a clone
in the same fashion as the CLI git clone command.
Signed-off-by: Ferry Huberts <redacted>
Thanks. "jgit clone" also needed this added. I did that in
a small followup patch.
Really though we need to fix the abstraction of Repository so there's
a notion of a bare repository, and a repository+worktree. And that
abstraction should then set the core.bare property accordingly
when creating a new repository (or new repository+worktree).
Unfortunately that hasn't happened yet...
+ /* we're setting up for a clone with a checkout */
+ local.getConfig().setBoolean("core", null, "bare", false);
+
Shouldn't this be "branch" and not "Constants.MASTER" ?
IIRC the dialog lets you start off a branch that isn't "master",
especially if the remote repository has no branch named "master"
but has something else that HEAD points at. "git clone" would
setup this branch.${branch}.merge to point at what the upstream
branch calls itself.
--
Shawn.
Shouldn't this be "branch" and not "Constants.MASTER" ?
IIRC the dialog lets you start off a branch that isn't "master",
especially if the remote repository has no branch named "master"
but has something else that HEAD points at. "git clone" would
setup this branch.${branch}.merge to point at what the upstream
branch calls itself.
yep. missed that. want a new patch? afaic you can patch that up yourself :-)
Ferry
From: Shawn O. Pearce <hidden> Date: 2016-06-15 22:46:16
"Ferry Huberts (Pelagic)" [off-list ref] wrote:
Shawn O. Pearce wrote:
quoted
Shouldn't this be "branch" and not "Constants.MASTER" ?
yep. missed that. want a new patch? afaic you can patch that up yourself :-)
Yes, new patch. Its a large rewrite of what you had otherwise
submitted. Much easier on the maintainers if we don't have to
do such things... plus the attribution is more correct, its you
that did the rewrite, not us. :)
--
Shawn.