* confusion over the new branch and merge config
@ 2006-12-21 22:17 Nicolas Pitre
2006-12-21 23:01 ` Junio C Hamano
2006-12-22 8:41 ` Andy Parkins
0 siblings, 2 replies; 45+ messages in thread
From: Nicolas Pitre @ 2006-12-21 22:17 UTC (permalink / raw)
To: git
OK I know I'm a total idiot and honnestly I didn't look at the code
implementation at all because I don't expect newbies to even look there.
But here's some pitfalls I'm sure people are likely to encounter...
$ git clone git://git.kernel.org/pub/scm/git/git.git git
Initialized empty Git repository in /home/nico/test/git/.git/
remote: Generating pack...
remote: Done counting 34527 objects.
remote: Deltifying 34527 objects.
remote: 100% (34527/34527) done
Indexing 34527 objects.
remote: Total 34527, written 34527 (delta 23920), reused 34111 (delta 23623)
100% (34527/34527) done
Resolving 23920 deltas.
100% (23920/23920) done
Checking files out...
100% (748/748) done
[ wooh! I feel good ]
$ cd git
$ git branch
* master
[ Hmmm... there used to be many more (remote) branches before. Where
are they? Looking into .git/refs I see a remote/ directory and all
remote branches are there. But I'm cheating now because a newbie
might not even think of looking there.
Ah? there is -a and -r options to git-branch. Fair enough. ]
$ git branch -r
* master
origin/HEAD
origin/html
origin/maint
origin/man
origin/master
origin/next
origin/pu
origin/todo
$ git checkout next
error: pathspec 'next' did not match any file(s) known to git.
Did you forget to 'git add'?
[ WTF!?!? This definitely used to work before. OK it is listed as
"origin/next" so let's try to be consistent. ]
$ git checkout origin/next
git checkout: to checkout the requested commit you need to specify
a name for a new branch which is created and switched to
[ Hmmmmmmmm.... /me stares at the message wondering.
I just want to _see_ and maybe _install_ the code from "next". ]
$ git checkout origin/next local_next
error: pathspec 'local_next' did not match any file(s) known to git.
Did you forget to 'git add'?
[ But it just said to me above that I needed to provide a name for the
branch to be switched to... Why doesn't it just work? F***ing tool!
OK I'll use my git knowledge and cheat again. ]
$ git checkout -b local_next origin/next
This is I think a good example where user experience might still be
improved. First the message about "providing a name for a new branch"
could certainly be less anbigous.
Then the "next" branch name could possibly be made to work without the
"origin/" if there is no conflict?
And there was a discussion about allowing checkouts to be made from a
remote branch but not allowing any commit on it. What happened of this
idea?
Now that I have my local_next branch, I want it to be kept up to date
when performing a pull. Before the "next" branch sort of was always
updated, but now it is a separate thing I cannot see directly and I need
to pull it in my local version.
$ git pull origin/next
fatal: The remote end hung up unexpectedly
Cannot get the repository state from git://git.kernel.org/pub/scm/git/git.git/next
[ WTF? Where that ...pub/scm/git/git.git/next comes from? Hmmm... ]
$ git pull next
fatal: 'next': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
Cannot get the repository state from next
[ ... an even more interesting set of error messages.
Yeah, Linus says you must use git-pull . blah syntax. ]
$ git pull . next
error: no such remote ref refs/heads/next
Fetch failure: .
$ git pull . origin/next
error: no such remote ref refs/heads/origin/next
Fetch failure: .
[ F**K YOU STUPID TOOL !!! OK let's cheat a bit again. ]
$ git pull . remotes/origin/next
Already up-to-date.
[ Woooh! But since I always hated this syntax let's try merge instead. ]
$ git merge origin/next
Already up-to-date.
OK here again various error messages could be improved. The fact that a
remote connection was established in some cases is really dubious. And
git-pull not accepting "origin/next" is IMHO a bug.
Well well... But I don't want to perform this two-step
git-pull+git-merge all the time. So let's have a look at this promising
warning:
$ git pull origin
Warning: No merge candidate found because value of config option
"branch.local_next.merge" does not match any remote branch fetched.
No changes.
So this means that branch.local_next.merge should be set to origin/next?
Let's have a look at the default in .git/config:
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
But according to the warning above, branch.master.merge should have been
set to refs/remotes/origin/master, not refs/heads/master, right?
Otherwise does this mean that master will merge itself into itself?
This is where my own git experience stops as I don't understand the
above for real. So let's see the doc:
|branch.<name>.merge::
| When in branch <name>, it tells `git fetch` the default refspec to
| be marked for merging in FETCH_HEAD. The value has exactly to match
| a remote part of one of the refspecs which are fetched from the remote
| given by "branch.<name>.remote".
| The merge information is used by `git pull` (which at first calls
| `git fetch`) to lookup the default branch for merging. Without
| this option, `git pull` defaults to merge the first refspec fetched.
| Specify multiple values to get an octopus merge.
Hmmmmmmm... Even after reading this twice I'm still not sure what it
really means. But as I said at the top I'm an idiot.
Nicolas
^ permalink raw reply [flat|nested] 45+ messages in thread* Re: confusion over the new branch and merge config 2006-12-21 22:17 confusion over the new branch and merge config Nicolas Pitre @ 2006-12-21 23:01 ` Junio C Hamano 2006-12-21 23:21 ` Sean ` (3 more replies) 2006-12-22 8:41 ` Andy Parkins 1 sibling, 4 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-21 23:01 UTC (permalink / raw) To: Nicolas Pitre; +Cc: git Nicolas Pitre <nico@cam.org> writes: > [ Hmmm... there used to be many more (remote) branches before. Where > are they? Looking into .git/refs I see a remote/ directory and all > remote branches are there. But I'm cheating now because a newbie > might not even think of looking there. > > Ah? there is -a and -r options to git-branch. Fair enough. ] A newbie might not even expect to see "many more branches" because there is no "before" for him. > $ git checkout origin/next > git checkout: to checkout the requested commit you need to specify > a name for a new branch which is created and switched to > > [ Hmmmmmmmm.... /me stares at the message wondering. > I just want to _see_ and maybe _install_ the code from "next". ] Rewording to suggest "checkout -b newbranchname origin/next", perhaps? > $ git checkout -b local_next origin/next "git checkout -b next origin/next" should work just fine, I think. There was a talk about allowing "checkout -b <new> <track>" to add branch.<new>.merge and branch.<new>.remote if <track> can be proven to corresond uniquely to one remote and one branch from that remote; I think that would match the expectation most of the time but that "most" would not be 100% nor even 80%, so I think that should be an optional feature. In any case, there was a talk but there is no code yet. > And there was a discussion about allowing checkouts to be made from a > remote branch but not allowing any commit on it. What happened of this > idea? It remains to be an idle talk without any code. Contributions appreciated. > $ git pull origin/next > fatal: The remote end hung up unexpectedly > Cannot get the repository state from git://git.kernel.org/pub/scm/git/git.git/next > > [ WTF? Where that ...pub/scm/git/git.git/next comes from? Hmmm... ] This comes from ancient request by Linus to allow: $ cat .git/remotes/jgarzik URL: master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/ $ git pull jgarzik/misc-2.6 See http://article.gmane.org/gmane.comp.version-control.git/6181 for the full text. Personally I thought this was confusing when I implemented it the first time, and I still find it confusing. I suspect nobody uses it. I am all for removing this "URL prefix shorthand" feature in v1.5.0. > $ git pull . remotes/origin/next > Already up-to-date. > > [ Woooh! But since I always hated this syntax let's try merge instead. ] > > $ git merge origin/next > Already up-to-date. Yes, that is one of the reasons that you would prefer 'merge' when you are working locally. > $ git pull origin > Warning: No merge candidate found because value of config option > "branch.local_next.merge" does not match any remote branch fetched. > No changes. > > So this means that branch.local_next.merge should be set to origin/next? No, the message says "any REMOTE branch" -- refs/heads/next is what it is called at the remote, and that is how the value is expected to be spelled; I think somebody added an example to config.txt recently to stress this. The above error messasge obviously was not clear enough. Rewording appreciated. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:01 ` Junio C Hamano @ 2006-12-21 23:21 ` Sean 2006-12-22 0:39 ` Junio C Hamano 2006-12-22 0:46 ` Junio C Hamano 2006-12-22 7:50 ` Alan Chandler ` (2 subsequent siblings) 3 siblings, 2 replies; 45+ messages in thread From: Sean @ 2006-12-21 23:21 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Thu, 21 Dec 2006 15:01:21 -0800 Junio C Hamano <junkio@cox.net> wrote: > No, the message says "any REMOTE branch" -- refs/heads/next is > what it is called at the remote, and that is how the value is > expected to be spelled; I think somebody added an example to > config.txt recently to stress this. The above error messasge > obviously was not clear enough. Rewording appreciated. This seems inconsistent and confusing. When working with the local repository, git-branch doesn't list that as "refs/heads/next" it just lists "next". Why all of a sudden when trying to fetch it from a remote repo must a user know about "refs/heads"? This seems like an internal detail slipping into the user interface. But maybe i'm wrong, when would it ever be anything other than "refs/heads/<branch>"? If it's _always_ "refs/heads", couldn't that prefix just be assumed if not provided by the user? Sean ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:21 ` Sean @ 2006-12-22 0:39 ` Junio C Hamano 2006-12-22 0:46 ` Junio C Hamano 1 sibling, 0 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-22 0:39 UTC (permalink / raw) To: Sean; +Cc: Nicolas Pitre, git Sean <seanlkml@sympatico.ca> writes the value of branch.<me>.merge being the name at the remote site, saying: > This seems inconsistent and confusing. Check the archive for messages on this issue that talks about the case without tracking branches. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:21 ` Sean 2006-12-22 0:39 ` Junio C Hamano @ 2006-12-22 0:46 ` Junio C Hamano 2006-12-22 1:01 ` Sean 2006-12-22 8:31 ` Andy Parkins 1 sibling, 2 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-22 0:46 UTC (permalink / raw) To: Sean; +Cc: Nicolas Pitre, git Sean <seanlkml@sympatico.ca> writes: > This seems inconsistent and confusing. When working with the > local repository, git-branch doesn't list that as "refs/heads/next" > it just lists "next". Why all of a sudden when trying to fetch > it from a remote repo must a user know about "refs/heads"? You can always say "git log refs/heads/next" even though you are allowed to say "git log next". Maybe we should remove that shorthand to make it consistent? I think not. The remote side can add things without your knowing, so insisting on the exact match makes sense in a weird sort of way. And this is a config file you would set once and then can forget about it. I do not see a big deal about having to spell it fully. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 0:46 ` Junio C Hamano @ 2006-12-22 1:01 ` Sean 2006-12-22 8:31 ` Andy Parkins 1 sibling, 0 replies; 45+ messages in thread From: Sean @ 2006-12-22 1:01 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Thu, 21 Dec 2006 16:46:46 -0800 Junio C Hamano <junkio@cox.net> wrote: > You can always say "git log refs/heads/next" even though you are > allowed to say "git log next". Maybe we should remove that > shorthand to make it consistent? I think not. Of course not. But why not add the shorthand to the other case to make it consistent? > The remote side can add things without your knowing, so > insisting on the exact match makes sense in a weird sort of > way. I'm sure there are technical reasons why things are they way they are, nothing weird about that. But looking in from the outside and not knowing what those reasons are, leads to an honest question if it's absolutely necessary for a user to have to learn about the internal "refs/heads" directory structure of Git. It would be nicer if they could just think in terms of branches and tags. > And this is a config file you would set once and then can forget > about it. I do not see a big deal about having to spell it > fully. It's not a huge deal, it's just one more slightly unexpected thing for a user to have to deal with in learning Git. It seems reasonable for a user to be able to refer to a remote branch as "remote/branch", and not "remote/refs/heads/branch". But if that simply can't be accommodated, so be it. Sean ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 0:46 ` Junio C Hamano 2006-12-22 1:01 ` Sean @ 2006-12-22 8:31 ` Andy Parkins 1 sibling, 0 replies; 45+ messages in thread From: Andy Parkins @ 2006-12-22 8:31 UTC (permalink / raw) To: git On Friday 2006 December 22 00:46, Junio C Hamano wrote: > You can always say "git log refs/heads/next" even though you are > allowed to say "git log next". Maybe we should remove that > shorthand to make it consistent? I think not. On a related subject - I'd like to remove all the "refs/" literals from git. All refs are always under "refs/", so prefixing everything with refs/ is just noise. The place that makes it stand out that this is wrong is (I think) found in refs.c (excuse my abuse of syntax): int for_each_ref(each_ref_fn fn, void *cb_data) return do_for_each_ref("refs/", fn, 0, cb_data); int for_each_tag_ref(each_ref_fn fn, void *cb_data) return do_for_each_ref("refs/tags/", fn, 10, cb_data); int for_each_branch_ref(each_ref_fn fn, void *cb_data) return do_for_each_ref("refs/heads/", fn, 11, cb_data); int for_each_remote_ref(each_ref_fn fn, void *cb_data) return do_for_each_ref("refs/remotes/", fn, 13, cb_data); What's significant is that it is only for_each_ref() that hands the prefix back. The change I'd like to make is return do_for_each_ref("refs/", fn, 5, cb_data); Obviously, this will imply a lot of changes everywhere else; so I didn't want to dive into it without mentioning it here first. Is this a sensible thing to want to do? As I'm talking about code cleanups, I'd also like to change all variables called "sha1" to "hash" (or similar). The point being that the variables hold hashes not sha1's. I don't say that the above are serious problems, I just like cleaning code :-) Andy -- Dr Andy Parkins, M Eng (hons), MIEE andyparkins@gmail.com ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:01 ` Junio C Hamano 2006-12-21 23:21 ` Sean @ 2006-12-22 7:50 ` Alan Chandler 2006-12-22 8:21 ` Junio C Hamano 2006-12-22 20:49 ` Nicolas Pitre 2006-12-23 5:12 ` Jeff King 3 siblings, 1 reply; 45+ messages in thread From: Alan Chandler @ 2006-12-22 7:50 UTC (permalink / raw) To: git; +Cc: Junio C Hamano, Nicolas Pitre On Thursday 21 December 2006 23:01, Junio C Hamano wrote: > Nicolas Pitre <nico@cam.org> writes: > > [ Hmmm... there used to be many more (remote) branches before. > > Where are they? Looking into .git/refs I see a remote/ directory > > and all remote branches are there. But I'm cheating now because a > > newbie might not even think of looking there. > > > > Ah? there is -a and -r options to git-branch. Fair enough. ] Added snipped content back in >> >> $ git branch -r >> * master >> origin/HEAD >> origin/html >> origin/maint >> origin/man >> origin/master >> origin/next >> origin/pu >> origin/todo And according to the man page git branch -r should print ONLY the remote branches > > A newbie might not even expect to see "many more branches" > because there is no "before" for him. > > > $ git checkout origin/next > > git checkout: to checkout the requested commit you need to specify > > a name for a new branch which is created and switched What about the error message saying that origin/next is read only. Something like git-checkout: the requested commit is on a remote read only branch. You need to specify a new local branch with the -b option to proceed. > > to > > > > [ Hmmmmmmmm.... /me stares at the message wondering. > > I just want to _see_ and maybe _install_ the code from "next". ] > > Rewording to suggest "checkout -b newbranchname origin/next", > perhaps? > > > $ git checkout -b local_next origin/next > > "git checkout -b next origin/next" should work just fine, I > think. > -- Alan Chandler http://www.chandlerfamily.org.uk ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 7:50 ` Alan Chandler @ 2006-12-22 8:21 ` Junio C Hamano 2006-12-22 8:39 ` Andy Parkins 0 siblings, 1 reply; 45+ messages in thread From: Junio C Hamano @ 2006-12-22 8:21 UTC (permalink / raw) To: Alan Chandler; +Cc: git, Nicolas Pitre Alan Chandler <alan@chandlerfamily.org.uk> writes: > And according to the man page git branch -r should print ONLY the remote > branches Heh, sounds like you spotted a bug -- patches welcome (or I'll fix it myself if I get around to it before everybody else). Thanks. >> > $ git checkout origin/next >> > git checkout: to checkout the requested commit you need to specify >> > a name for a new branch which is created and switched > > What about the error message saying that origin/next is read only. > Something like > > git-checkout: the requested commit is on a remote read only branch. You > need to specify a new local branch with the -b option to proceed. I agree that explicitly suggesting the use of -b is a good idea, but your wording is a bit too specific; after all you might do $ H=`git-rev-parse origin/next` $ git checkout $H and there is not enough information to say "is on a remote read only branch". We could do that with more specific hacks in git-checkout; patches welcome. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 8:21 ` Junio C Hamano @ 2006-12-22 8:39 ` Andy Parkins 2006-12-22 15:25 ` Alan Chandler 0 siblings, 1 reply; 45+ messages in thread From: Andy Parkins @ 2006-12-22 8:39 UTC (permalink / raw) To: git; +Cc: Junio C Hamano, Alan Chandler On Friday 2006 December 22 08:21, Junio C Hamano wrote: > Heh, sounds like you spotted a bug -- patches welcome (or I'll > fix it myself if I get around to it before everybody else). > Thanks. I can't reproduce this bug. I tried having an identically named branch in both remotes and heads. Output was fine. I don't like to say "impossible", but it certainly seems that This from append_ref(): } else if (!strncmp(refname, "refs/remotes/", 13)) { kind = REF_REMOTE_BRANCH; and this from print_ref_list(): if (ref_list.list[i].kind == REF_LOCAL_BRANCH && !strcmp(ref_list.list[i].name, head)) { c = '*'; Make it almost inconceivable that a remote branch is being starred, or that a local branch is making it into the "-r" output. Alan: could you show a tree of your .git/refs/heads and your .git/refs/remotes for the repository that is displaying this error? Andy -- Dr Andy Parkins, M Eng (hons), MIEE andyparkins@gmail.com ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 8:39 ` Andy Parkins @ 2006-12-22 15:25 ` Alan Chandler 0 siblings, 0 replies; 45+ messages in thread From: Alan Chandler @ 2006-12-22 15:25 UTC (permalink / raw) To: git; +Cc: Andy Parkins, Junio C Hamano On Friday 22 December 2006 08:39, Andy Parkins wrote: > Make it almost inconceivable that a remote branch is being starred, > or that a local branch is making it into the "-r" output. > > Alan: could you show a tree of your .git/refs/heads and your > .git/refs/remotes for the repository that is displaying this error? It wasn't my repository I was responding to - it was Nicolas Pitre's post that listed both remote and local branches - and I then looked at the man page to see what -r did and saw that it said "only" remote branches. -- Alan Chandler http://www.chandlerfamily.org.uk ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:01 ` Junio C Hamano 2006-12-21 23:21 ` Sean 2006-12-22 7:50 ` Alan Chandler @ 2006-12-22 20:49 ` Nicolas Pitre 2006-12-22 21:04 ` Jakub Narebski 2006-12-22 23:39 ` Junio C Hamano 2006-12-23 5:12 ` Jeff King 3 siblings, 2 replies; 45+ messages in thread From: Nicolas Pitre @ 2006-12-22 20:49 UTC (permalink / raw) To: Junio C Hamano; +Cc: git On Thu, 21 Dec 2006, Junio C Hamano wrote: > Nicolas Pitre <nico@cam.org> writes: > > > $ git pull origin/next > > fatal: The remote end hung up unexpectedly > > Cannot get the repository state from git://git.kernel.org/pub/scm/git/git.git/next > > > > [ WTF? Where that ...pub/scm/git/git.git/next comes from? Hmmm... ] > > This comes from ancient request by Linus to allow: > > $ cat .git/remotes/jgarzik > URL: master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/ > $ git pull jgarzik/misc-2.6 > > See http://article.gmane.org/gmane.comp.version-control.git/6181 > for the full text. > > Personally I thought this was confusing when I implemented it > the first time, and I still find it confusing. > > I suspect nobody uses it. I am all for removing this "URL > prefix shorthand" feature in v1.5.0. Please do. I'm sure Linus can find a better way now. > > $ git pull . remotes/origin/next > > Already up-to-date. > > > > [ Woooh! But since I always hated this syntax let's try merge instead. ] > > > > $ git merge origin/next > > Already up-to-date. > > Yes, that is one of the reasons that you would prefer 'merge' > when you are working locally. Sure. But why doesn't pull accept "origin/next"? > > $ git pull origin > > Warning: No merge candidate found because value of config option > > "branch.local_next.merge" does not match any remote branch fetched. > > No changes. > > > > So this means that branch.local_next.merge should be set to origin/next? > > No, the message says "any REMOTE branch" -- refs/heads/next is > what it is called at the remote, and that is how the value is > expected to be spelled; I think somebody added an example to > config.txt recently to stress this. The above error messasge > obviously was not clear enough. Rewording appreciated. But wouldn't it be much less confusing if it used the local name for that remote branch instead? After all it is what should be used with git-merge if performed manually, it is what diff, log, and al must use as well. Why would this need a remote name for something that is a local operation after all? I think "refs/heads/master" is really ambigous since you might be confused between the local and remote meaning of it, whereas "origin/master" carries no confusion at all. Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 20:49 ` Nicolas Pitre @ 2006-12-22 21:04 ` Jakub Narebski 2006-12-22 21:20 ` Nicolas Pitre 2006-12-22 23:39 ` Junio C Hamano 1 sibling, 1 reply; 45+ messages in thread From: Jakub Narebski @ 2006-12-22 21:04 UTC (permalink / raw) To: git <opublikowany i wysłany> Nicolas Pitre wrote: > On Thu, 21 Dec 2006, Junio C Hamano wrote: >> No, the message says "any REMOTE branch" -- refs/heads/next is >> what it is called at the remote, and that is how the value is >> expected to be spelled; I think somebody added an example to >> config.txt recently to stress this. The above error messasge >> obviously was not clear enough. Rewording appreciated. > > But wouldn't it be much less confusing if it used the local name for > that remote branch instead? After all it is what should be used with > git-merge if performed manually, it is what diff, log, and al must use > as well. Why would this need a remote name for something that is a > local operation after all? I think "refs/heads/master" is really > ambigous since you might be confused between the local and remote > meaning of it, whereas "origin/master" carries no confusion at all. Perhaps less confusing, but also less powerfull. Current notation allows for pulling _without need for tracking branches_. Although I wonder if it is possible to have multiple branch.<name>.remote, and branch.<name>.merge always refering to latest remote (octopus if there are more than one branch.<name>.merge for remote)... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 21:04 ` Jakub Narebski @ 2006-12-22 21:20 ` Nicolas Pitre 2006-12-22 22:40 ` Jakub Narebski 0 siblings, 1 reply; 45+ messages in thread From: Nicolas Pitre @ 2006-12-22 21:20 UTC (permalink / raw) To: Jakub Narebski; +Cc: git [-- Attachment #1: Type: TEXT/PLAIN, Size: 1490 bytes --] Could you at least keep me in CC when replying to me please? On Fri, 22 Dec 2006, Jakub Narebski wrote: > <opublikowany i wysłany> ? > Nicolas Pitre wrote: > > On Thu, 21 Dec 2006, Junio C Hamano wrote: > > >> No, the message says "any REMOTE branch" -- refs/heads/next is > >> what it is called at the remote, and that is how the value is > >> expected to be spelled; I think somebody added an example to > >> config.txt recently to stress this. The above error messasge > >> obviously was not clear enough. Rewording appreciated. > > > > But wouldn't it be much less confusing if it used the local name for > > that remote branch instead? After all it is what should be used with > > git-merge if performed manually, it is what diff, log, and al must use > > as well. Why would this need a remote name for something that is a > > local operation after all? I think "refs/heads/master" is really > > ambigous since you might be confused between the local and remote > > meaning of it, whereas "origin/master" carries no confusion at all. > > Perhaps less confusing, but also less powerfull. Current notation > allows for pulling _without need for tracking branches_. Is this really a killer feature worth the confusion? If you put the repo to pull from on the command line then sure you might not want a tracking branch, but if you go to the trouble of adding a branch.blah.merge config entry then you certainly don't mind having a tracking branch? Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 21:20 ` Nicolas Pitre @ 2006-12-22 22:40 ` Jakub Narebski 0 siblings, 0 replies; 45+ messages in thread From: Jakub Narebski @ 2006-12-22 22:40 UTC (permalink / raw) To: Nicolas Pitre, Junio Hamano; +Cc: git Nicolas Pitre wrote: > > Could you at least keep me in CC when replying to me please? I have Cc-ed you and Junio, but somehow message I send to mailing list loses the Cc:. Perhaps it is time to change news client (KMail), or upgrade it... > On Fri, 22 Dec 2006, Jakub Narebski wrote: > >> <opublikowany i wysłany> > > ? Sorry, it is added (in my locale) when both sending reply via mail, and to newsgroup (and to git mailing list via GMane NNTP news2mail interface). >> Perhaps less confusing, but also less powerfull. Current notation >> allows for pulling _without need for tracking branches_. > > Is this really a killer feature worth the confusion? > > If you put the repo to pull from on the command line then sure you might > not want a tracking branch, but if you go to the trouble of adding a > branch.blah.merge config entry then you certainly don't mind having a > tracking branch? I'm not sure. On one hand you have this feature, pulling without tracking branch (which is nice workflow for one-branch repos at least), on the other hand the tracking branch tells us the remote, and we can check if they match. On another hand, you can have two remotes which are the same repository (mirrors for example)... although that would be better solved by allowing multiple url... -- Jakub Narebski Poland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 20:49 ` Nicolas Pitre 2006-12-22 21:04 ` Jakub Narebski @ 2006-12-22 23:39 ` Junio C Hamano 2006-12-23 3:10 ` Tom Prince 2006-12-23 5:11 ` Nicolas Pitre 1 sibling, 2 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-22 23:39 UTC (permalink / raw) To: Nicolas Pitre; +Cc: git Nicolas Pitre <nico@cam.org> writes: > On Thu, 21 Dec 2006, Junio C Hamano wrote: > >> Nicolas Pitre <nico@cam.org> writes: >> >> > $ git pull origin/next >> > fatal: The remote end hung up unexpectedly >> > Cannot get the repository state from git://git.kernel.org/pub/scm/git/git.git/next >> > >> > [ WTF? Where that ...pub/scm/git/git.git/next comes from? Hmmm... ] >> >> This comes from ancient request by Linus to allow: >> >> $ cat .git/remotes/jgarzik >> URL: master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/ >> $ git pull jgarzik/misc-2.6 >> >> See http://article.gmane.org/gmane.comp.version-control.git/6181 >> for the full text. >> >> Personally I thought this was confusing when I implemented it >> the first time, and I still find it confusing. >> >> I suspect nobody uses it. I am all for removing this "URL >> prefix shorthand" feature in v1.5.0. > > Please do. I'm sure Linus can find a better way now. Well, "request" was very inprecise word -- I should have said "suggestion". But I think I agree. Seconds? Thirds? -- >8 -- [PATCH] Do not support "partial URL shorthand" anymore. We used to support specifying the top part of remote URL in remotes and use that as a short-hand for the URL. $ cat .git/remotes/jgarzik URL: git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/ $ git pull jgarzik/misc-2.6 This is confusing when somebody attempts to do this: $ git pull origin/foo which is not syntactically correct (unless you have origin/foo.git repository) and should fail, but it resulted in a mysterious access to the 'foo' subdirectory of the origin repository. Which was what it was designed to do, but because this is an oddball "feature" I suspect nobody uses, let's remove it. Signed-off-by: Junio C Hamano <junkio@cox.net> --- git-parse-remote.sh | 34 +++++++--------------------------- 1 files changed, 7 insertions(+), 27 deletions(-) diff --git a/git-parse-remote.sh b/git-parse-remote.sh index b163d22..aaef861 100755 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -7,18 +7,7 @@ GIT_DIR=$(git-rev-parse --git-dir 2>/dev/null) || :; get_data_source () { case "$1" in */*) - # Not so fast. This could be the partial URL shorthand... - token=$(expr "z$1" : 'z\([^/]*\)/') - remainder=$(expr "z$1" : 'z[^/]*/\(.*\)') - if test "$(git-repo-config --get "remote.$token.url")" - then - echo config-partial - elif test -f "$GIT_DIR/branches/$token" - then - echo branches-partial - else - echo '' - fi + echo '' ;; *) if test "$(git-repo-config --get "remote.$1.url")" @@ -40,12 +29,7 @@ get_remote_url () { data_source=$(get_data_source "$1") case "$data_source" in '') - echo "$1" ;; - config-partial) - token=$(expr "z$1" : 'z\([^/]*\)/') - remainder=$(expr "z$1" : 'z[^/]*/\(.*\)') - url=$(git-repo-config --get "remote.$token.url") - echo "$url/$remainder" + echo "$1" ;; config) git-repo-config --get "remote.$1.url" @@ -54,14 +38,10 @@ get_remote_url () { sed -ne '/^URL: */{ s///p q - }' "$GIT_DIR/remotes/$1" ;; + }' "$GIT_DIR/remotes/$1" + ;; branches) - sed -e 's/#.*//' "$GIT_DIR/branches/$1" ;; - branches-partial) - token=$(expr "z$1" : 'z\([^/]*\)/') - remainder=$(expr "z$1" : 'z[^/]*/\(.*\)') - url=$(sed -e 's/#.*//' "$GIT_DIR/branches/$token") - echo "$url/$remainder" + sed -e 's/#.*//' "$GIT_DIR/branches/$1" ;; *) die "internal error: get-remote-url $1" ;; @@ -77,7 +57,7 @@ get_default_remote () { get_remote_default_refs_for_push () { data_source=$(get_data_source "$1") case "$data_source" in - '' | config-partial | branches | branches-partial) + '' | branches) ;; # no default push mapping, just send matching refs. config) git-repo-config --get-all "remote.$1.push" ;; @@ -196,7 +176,7 @@ canon_refs_list_for_fetch () { get_remote_default_refs_for_fetch () { data_source=$(get_data_source "$1") case "$data_source" in - '' | config-partial | branches-partial) + '') echo "HEAD:" ;; config) canon_refs_list_for_fetch -d "$1" \ -- 1.4.4.3.ge228b ^ permalink raw reply related [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 23:39 ` Junio C Hamano @ 2006-12-23 3:10 ` Tom Prince 2006-12-23 5:11 ` Nicolas Pitre 1 sibling, 0 replies; 45+ messages in thread From: Tom Prince @ 2006-12-23 3:10 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Fri, Dec 22, 2006 at 03:39:33PM -0800, Junio C Hamano wrote: > [PATCH] Do not support "partial URL shorthand" anymore. > > We used to support specifying the top part of remote URL in > remotes and use that as a short-hand for the URL. > > $ cat .git/remotes/jgarzik > URL: git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/ > $ git pull jgarzik/misc-2.6 > > This is confusing when somebody attempts to do this: > > $ git pull origin/foo > > which is not syntactically correct (unless you have origin/foo.git > repository) and should fail, but it resulted in a mysterious > access to the 'foo' subdirectory of the origin repository. > > Which was what it was designed to do, but because this is an > oddball "feature" I suspect nobody uses, let's remove it. Except with the forthcoming submodule support, this feature might become more useful. Tom ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 23:39 ` Junio C Hamano 2006-12-23 3:10 ` Tom Prince @ 2006-12-23 5:11 ` Nicolas Pitre 1 sibling, 0 replies; 45+ messages in thread From: Nicolas Pitre @ 2006-12-23 5:11 UTC (permalink / raw) To: Junio C Hamano; +Cc: git On Fri, 22 Dec 2006, Junio C Hamano wrote: > Well, "request" was very inprecise word -- I should have said > "suggestion". But I think I agree. > > Seconds? Thirds? > > -- >8 -- > [PATCH] Do not support "partial URL shorthand" anymore. > > We used to support specifying the top part of remote URL in > remotes and use that as a short-hand for the URL. > > $ cat .git/remotes/jgarzik > URL: git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/ > $ git pull jgarzik/misc-2.6 > > This is confusing when somebody attempts to do this: > > $ git pull origin/foo > > which is not syntactically correct (unless you have origin/foo.git > repository) and should fail, but it resulted in a mysterious > access to the 'foo' subdirectory of the origin repository. > > Which was what it was designed to do, but because this is an > oddball "feature" I suspect nobody uses, let's remove it. > > Signed-off-by: Junio C Hamano <junkio@cox.net> Well since I suggested it I seconds this of course. If it ever becomes useful for, say, submodules as someone pointed out, then this can be restored at that point and done properly for the task. Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 23:01 ` Junio C Hamano ` (2 preceding siblings ...) 2006-12-22 20:49 ` Nicolas Pitre @ 2006-12-23 5:12 ` Jeff King 2006-12-23 5:29 ` Nicolas Pitre ` (2 more replies) 3 siblings, 3 replies; 45+ messages in thread From: Jeff King @ 2006-12-23 5:12 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Thu, Dec 21, 2006 at 03:01:21PM -0800, Junio C Hamano wrote: > > $ git checkout -b local_next origin/next > > "git checkout -b next origin/next" should work just fine, I > think. > > There was a talk about allowing "checkout -b <new> <track>" to > add branch.<new>.merge and branch.<new>.remote if <track> can be > proven to corresond uniquely to one remote and one branch from > that remote; I think that would match the expectation most of > the time but that "most" would not be 100% nor even 80%, so I > think that should be an optional feature. In any case, there > was a talk but there is no code yet. BTW, is there some explanation why branch.*.merge specifies a _remote_ head? The following would make much more sense to me: [branch "master"] remote = origin merge = refs/remotes/origin/master Because I don't _care_ that the other guy calls it refs/heads/master. I care that I'm pulling from refs/remotes/origin/master on my end (and however I get stuff into that branch is defined by the remote). It also means that even without a remote, the merge option makes sense (e.g., if I do repeated merges from one local branch to another). And it means that it's _always_ correct for "checkout -b <new> <track>" to set branch.<new>.merge to <track>, without having to worry about finding an appropriate remote. -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 5:12 ` Jeff King @ 2006-12-23 5:29 ` Nicolas Pitre 2006-12-23 6:15 ` Junio C Hamano 2006-12-23 8:31 ` Jakub Narebski 2 siblings, 0 replies; 45+ messages in thread From: Nicolas Pitre @ 2006-12-23 5:29 UTC (permalink / raw) To: Jeff King; +Cc: Junio C Hamano, git On Sat, 23 Dec 2006, Jeff King wrote: > BTW, is there some explanation why branch.*.merge specifies a _remote_ > head? The following would make much more sense to me: > > [branch "master"] > remote = origin > merge = refs/remotes/origin/master > > Because I don't _care_ that the other guy calls it refs/heads/master. I > care that I'm pulling from refs/remotes/origin/master on my end (and > however I get stuff into that branch is defined by the remote). Exactly the point I'm trying to make ! I'm glad I'm not alone to come to this conclusion. Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 5:12 ` Jeff King 2006-12-23 5:29 ` Nicolas Pitre @ 2006-12-23 6:15 ` Junio C Hamano 2006-12-23 6:22 ` Shawn Pearce ` (2 more replies) 2006-12-23 8:31 ` Jakub Narebski 2 siblings, 3 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-23 6:15 UTC (permalink / raw) To: Jeff King; +Cc: Nicolas Pitre, git Jeff King <peff@peff.net> writes: > BTW, is there some explanation why branch.*.merge specifies a _remote_ > head? The following would make much more sense to me: > > [branch "master"] > remote = origin > merge = refs/remotes/origin/master Only *if* you store it in that tracking branch. The name the other party gives _do_ matter to you anyway, because you have to _know_ it to fetch. What it does NOT matter is if you use a tracking branch, or if you do, which local tracking branch you use to track it. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 6:15 ` Junio C Hamano @ 2006-12-23 6:22 ` Shawn Pearce 2006-12-23 6:28 ` Jeff King 2006-12-23 9:51 ` Junio C Hamano 2 siblings, 0 replies; 45+ messages in thread From: Shawn Pearce @ 2006-12-23 6:22 UTC (permalink / raw) To: Junio C Hamano; +Cc: Jeff King, Nicolas Pitre, git Junio C Hamano <junkio@cox.net> wrote: > Jeff King <peff@peff.net> writes: > > > BTW, is there some explanation why branch.*.merge specifies a _remote_ > > head? The following would make much more sense to me: > > > > [branch "master"] > > remote = origin > > merge = refs/remotes/origin/master > > Only *if* you store it in that tracking branch. The name the > other party gives _do_ matter to you anyway, because you have to > _know_ it to fetch. What it does NOT matter is if you use a > tracking branch, or if you do, which local tracking branch you > use to track it. My $0.02 USD (worth almost nothing these days!): I agree with Junio. branch.<n>.merge makes sense as the remote name. -- Shawn. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 6:15 ` Junio C Hamano 2006-12-23 6:22 ` Shawn Pearce @ 2006-12-23 6:28 ` Jeff King 2006-12-23 7:11 ` Junio C Hamano 2006-12-23 9:51 ` Junio C Hamano 2 siblings, 1 reply; 45+ messages in thread From: Jeff King @ 2006-12-23 6:28 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Fri, Dec 22, 2006 at 10:15:15PM -0800, Junio C Hamano wrote: > Only *if* you store it in that tracking branch. The name the > other party gives _do_ matter to you anyway, because you have to > _know_ it to fetch. What it does NOT matter is if you use a > tracking branch, or if you do, which local tracking branch you > use to track it. No, their names _don't_ matter to most users. With the new remote layout and wildcards, I'll never even see 'refs/heads/next' when I clone git.git; I'll only talk about 'origin/next'. The local tracking branch matters much more to me, because it's the thing I'll use to interact with git. I don't say 'git-checkout -b topic origin refs/heads/master'; I say 'git-checkout -b topic origin/next'. Yes, my proposed syntax means you have to have a tracking branch. But does it really make sense for people to put entries in their config file, but not have a tracking branch? What do people use non-tracking branch pulls for, anyway? I would assume for one-off pulls of infrequently used repositories, in which case they're always saying "git-pull git://path/to/repo foo:bar". My point being that if we can improve the usefulness of the config file, it's probably not worth worrying about people combining branch.*.merge config entries with non-tracking-branch pulls, since they're extremely unlikely to be used together. Does anyone out there use non-tracking-branch pulls? If so, can you describe your use case? -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 6:28 ` Jeff King @ 2006-12-23 7:11 ` Junio C Hamano 2006-12-23 7:25 ` Jeff King 0 siblings, 1 reply; 45+ messages in thread From: Junio C Hamano @ 2006-12-23 7:11 UTC (permalink / raw) To: Jeff King; +Cc: Nicolas Pitre, git Jeff King <peff@peff.net> writes: > Yes, my proposed syntax means you have to have a tracking branch. But > does it really make sense for people to put entries in their config > file, but not have a tracking branch? What do people use non-tracking > branch pulls for, anyway? I would assume for one-off pulls of > infrequently used repositories, in which case they're always saying > "git-pull git://path/to/repo foo:bar". Not at all. I pull from gitk repository and I do not have tracking branch, but I still have a remote defined for it. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 7:11 ` Junio C Hamano @ 2006-12-23 7:25 ` Jeff King 0 siblings, 0 replies; 45+ messages in thread From: Jeff King @ 2006-12-23 7:25 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Fri, Dec 22, 2006 at 11:11:18PM -0800, Junio C Hamano wrote: > Not at all. I pull from gitk repository and I do not have > tracking branch, but I still have a remote defined for it. Do you also define branch.*.merge to use with this? Is there a reason you don't want a tracking branch? -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 6:15 ` Junio C Hamano 2006-12-23 6:22 ` Shawn Pearce 2006-12-23 6:28 ` Jeff King @ 2006-12-23 9:51 ` Junio C Hamano 2006-12-23 10:40 ` Jakub Narebski ` (4 more replies) 2 siblings, 5 replies; 45+ messages in thread From: Junio C Hamano @ 2006-12-23 9:51 UTC (permalink / raw) To: Jeff King; +Cc: Nicolas Pitre, git Junio C Hamano <junkio@cox.net> writes: > Jeff King <peff@peff.net> writes: > >> BTW, is there some explanation why branch.*.merge specifies a _remote_ >> head? The following would make much more sense to me: >> >> [branch "master"] >> remote = origin >> merge = refs/remotes/origin/master > > Only *if* you store it in that tracking branch. The name the > other party gives _do_ matter to you anyway, because you have to > _know_ it to fetch. What it does NOT matter is if you use a > tracking branch, or if you do, which local tracking branch you > use to track it. Having said that, I think we _could_ do this. If you (or other people) use branch.*.merge, with its value set to remote name _and_ local name, and actually verify that either form works without confusion, please report back and I'll apply. My scar is still fresh from the "not having branch.*.merge is an error" mistake, where the thing stayed on 'next' for the better part of last week without anybody complaining, and immediately broken peoples' workflows when it was pushed out to 'master'. I really do not want to repeat that. -- >8 -- diff --git a/git-parse-remote.sh b/git-parse-remote.sh index aaef861..b45af5c 100755 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -146,8 +146,13 @@ canon_refs_list_for_fetch () { else for merge_branch in $merge_branches do - [ "$remote" = "$merge_branch" ] && - dot_prefix= && break + if test "$remote" = "$merge_branch" || + test "z$local" != z && + test "$local" = "$merge_branch" + then + dot_prefix= + break + fi done fi case "$remote" in ^ permalink raw reply related [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 9:51 ` Junio C Hamano @ 2006-12-23 10:40 ` Jakub Narebski 2006-12-23 15:58 ` Johannes Schindelin ` (3 subsequent siblings) 4 siblings, 0 replies; 45+ messages in thread From: Jakub Narebski @ 2006-12-23 10:40 UTC (permalink / raw) To: git Junio C Hamano wrote: >> Only *if* you store it in that tracking branch. The name the >> other party gives _do_ matter to you anyway, because you have to >> _know_ it to fetch. What it does NOT matter is if you use a >> tracking branch, or if you do, which local tracking branch you >> use to track it. > > Having said that, I think we _could_ do this. > > If you (or other people) use branch.*.merge, with its value set > to remote name _and_ local name, and actually verify that either > form works without confusion, please report back and I'll apply. Hmmm... that DWIM is even better than proposed some time ago localmerge (or mergelocal, I don't remember) config variable. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 9:51 ` Junio C Hamano 2006-12-23 10:40 ` Jakub Narebski @ 2006-12-23 15:58 ` Johannes Schindelin 2006-12-23 22:48 ` Jakub Narebski 2006-12-24 6:15 ` Jeff King ` (2 subsequent siblings) 4 siblings, 1 reply; 45+ messages in thread From: Johannes Schindelin @ 2006-12-23 15:58 UTC (permalink / raw) To: Junio C Hamano; +Cc: Jeff King, Nicolas Pitre, git [-- Attachment #1: Type: TEXT/PLAIN, Size: 1118 bytes --] Hi, On Sat, 23 Dec 2006, Junio C Hamano wrote: > Junio C Hamano <junkio@cox.net> writes: > > > Jeff King <peff@peff.net> writes: > > > >> BTW, is there some explanation why branch.*.merge specifies a _remote_ > >> head? The following would make much more sense to me: > >> > >> [branch "master"] > >> remote = origin > >> merge = refs/remotes/origin/master > > > > Only *if* you store it in that tracking branch. The name the > > other party gives _do_ matter to you anyway, because you have to > > _know_ it to fetch. What it does NOT matter is if you use a > > tracking branch, or if you do, which local tracking branch you > > use to track it. > > Having said that, I think we _could_ do this. > > If you (or other people) use branch.*.merge, with its value set > to remote name _and_ local name, and actually verify that either > form works without confusion, please report back and I'll apply. I do not claim to understand your patch (I have no idea if || or && is stronger in shell), but here is another proposition: if the config variablÃe starts with "refsremotes/", assume it is local. Ciao, Dscho ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 15:58 ` Johannes Schindelin @ 2006-12-23 22:48 ` Jakub Narebski 0 siblings, 0 replies; 45+ messages in thread From: Jakub Narebski @ 2006-12-23 22:48 UTC (permalink / raw) To: git Johannes Schindelin wrote: > On Sat, 23 Dec 2006, Junio C Hamano wrote: >> Having said that, I think we _could_ do this. >> >> If you (or other people) use branch.*.merge, with its value set >> to remote name _and_ local name, and actually verify that either >> form works without confusion, please report back and I'll apply. > > I do not claim to understand your patch (I have no idea if || or && is > stronger in shell), but here is another proposition: if the config > variable starts with "refs/remotes/", assume it is local. Why? You can track another repository tracking branches, using it as a kind of proxy repository, even if it is not bare... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 9:51 ` Junio C Hamano 2006-12-23 10:40 ` Jakub Narebski 2006-12-23 15:58 ` Johannes Schindelin @ 2006-12-24 6:15 ` Jeff King 2006-12-24 20:49 ` Nicolas Pitre 2007-01-02 14:49 ` Jeff King 4 siblings, 0 replies; 45+ messages in thread From: Jeff King @ 2006-12-24 6:15 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Sat, Dec 23, 2006 at 01:51:03AM -0800, Junio C Hamano wrote: > If you (or other people) use branch.*.merge, with its value set > to remote name _and_ local name, and actually verify that either > form works without confusion, please report back and I'll apply. I am happy to try this out and report back. However, I'm out of town for the holidays, so I won't have anything useful to say until next week. -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 9:51 ` Junio C Hamano ` (2 preceding siblings ...) 2006-12-24 6:15 ` Jeff King @ 2006-12-24 20:49 ` Nicolas Pitre 2006-12-26 7:33 ` Jeff King 2007-01-02 14:49 ` Jeff King 4 siblings, 1 reply; 45+ messages in thread From: Nicolas Pitre @ 2006-12-24 20:49 UTC (permalink / raw) To: Junio C Hamano; +Cc: Jeff King, git On Sat, 23 Dec 2006, Junio C Hamano wrote: > If you (or other people) use branch.*.merge, with its value set > to remote name _and_ local name, and actually verify that either > form works without confusion, please report back and I'll apply. This is nice, thanks. What would be nice as well is to be able to provide only the _name_ of the tracking branch without the refs/remotes/$origin/ prefix. Since there is already a 'branch."blah".remote = $origin' entry, then having 'branch."blah".merge = $foo' could mean "refs/remotes/$origin/$foo" when $foo contains no slash. Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-24 20:49 ` Nicolas Pitre @ 2006-12-26 7:33 ` Jeff King 0 siblings, 0 replies; 45+ messages in thread From: Jeff King @ 2006-12-26 7:33 UTC (permalink / raw) To: Nicolas Pitre; +Cc: Junio C Hamano, git On Sun, Dec 24, 2006 at 03:49:50PM -0500, Nicolas Pitre wrote: > What would be nice as well is to be able to provide only the _name_ of > the tracking branch without the refs/remotes/$origin/ prefix. Since > there is already a 'branch."blah".remote = $origin' entry, then having > 'branch."blah".merge = $foo' could mean "refs/remotes/$origin/$foo" when > $foo contains no slash. NAK. That makes branch names like "jc/foo" second-class citizens. You would do better to say "entries without refs/ are implicitly local refs in refs/remotes/". -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 9:51 ` Junio C Hamano ` (3 preceding siblings ...) 2006-12-24 20:49 ` Nicolas Pitre @ 2007-01-02 14:49 ` Jeff King 2007-01-02 17:32 ` Junio C Hamano 4 siblings, 1 reply; 45+ messages in thread From: Jeff King @ 2007-01-02 14:49 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Sat, Dec 23, 2006 at 01:51:03AM -0800, Junio C Hamano wrote: > If you (or other people) use branch.*.merge, with its value set > to remote name _and_ local name, and actually verify that either > form works without confusion, please report back and I'll apply. This [using tracking branches in branch.*.merge] seems to be working for me, but it is possible to get some confusing results with it. Try this config: [remote "origin"] url = /my/other/git/repo fetch = refs/heads/master:refs/heads/origin fetch = refs/heads/origin:refs/heads/junio [branch "master"] remote = origin merge = refs/heads/origin That is, we have a local tracking branch 'X' which has the same name as a remote branch 'X'. When we fetch, both will be marked for merge in FETCH_HEAD, and git-pull will attempt to do an octopus. Is this too convoluted a config to worry about (no, I don't actually do this in my repository -- I just constructed the most plausible reason I could think of for having conflicting names). I actually think having a branch.*.mergelocal would make just as much sense and would be more robust (plus, it should be safe and sensible for "git-checkout -b foo bar" to point branch.foo.mergelocal to refs/heads/bar). -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 14:49 ` Jeff King @ 2007-01-02 17:32 ` Junio C Hamano 2007-01-02 17:34 ` Jeff King 0 siblings, 1 reply; 45+ messages in thread From: Junio C Hamano @ 2007-01-02 17:32 UTC (permalink / raw) To: Jeff King; +Cc: Nicolas Pitre, git Jeff King <peff@peff.net> writes: > On Sat, Dec 23, 2006 at 01:51:03AM -0800, Junio C Hamano wrote: > >> If you (or other people) use branch.*.merge, with its value set >> to remote name _and_ local name, and actually verify that either >> form works without confusion, please report back and I'll apply. > > This [using tracking branches in branch.*.merge] seems to be working for > me, but it is possible to get some confusing results with it. Try this > config: > > [remote "origin"] > url = /my/other/git/repo > fetch = refs/heads/master:refs/heads/origin > fetch = refs/heads/origin:refs/heads/junio > [branch "master"] > remote = origin > merge = refs/heads/origin > > That is, we have a local tracking branch 'X' which has the same name as > a remote branch 'X'. When we fetch, both will be marked for merge in > FETCH_HEAD, and git-pull will attempt to do an octopus. > > Is this too convoluted a config to worry about (no, I don't actually do > this in my repository -- I just constructed the most plausible reason I > could think of for having conflicting names). I actually think having a > branch.*.mergelocal would make just as much sense and would be more > robust (plus, it should be safe and sensible for "git-checkout -b foo > bar" to point branch.foo.mergelocal to refs/heads/bar). If we are to worry about, and I think we might have to, I think not worrying about mergelocal and not accepting the name of local tracking branch is the only sensible thing to do. Is there a problem if we did that? I do not think of any. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 17:32 ` Junio C Hamano @ 2007-01-02 17:34 ` Jeff King 2007-01-02 20:04 ` Junio C Hamano 0 siblings, 1 reply; 45+ messages in thread From: Jeff King @ 2007-01-02 17:34 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git On Tue, Jan 02, 2007 at 09:32:30AM -0800, Junio C Hamano wrote: > If we are to worry about, and I think we might have to, I think > not worrying about mergelocal and not accepting the name of > local tracking branch is the only sensible thing to do. Sorry, I don't see the problem with mergelocal. Can you elaborate? -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 17:34 ` Jeff King @ 2007-01-02 20:04 ` Junio C Hamano 2007-01-02 20:30 ` Jakub Narebski 2007-01-09 15:05 ` Jeff King 0 siblings, 2 replies; 45+ messages in thread From: Junio C Hamano @ 2007-01-02 20:04 UTC (permalink / raw) To: Jeff King; +Cc: Nicolas Pitre, git Jeff King <peff@peff.net> writes: > On Tue, Jan 02, 2007 at 09:32:30AM -0800, Junio C Hamano wrote: > >> If we are to worry about, and I think we might have to, I think >> not worrying about mergelocal and not accepting the name of >> local tracking branch is the only sensible thing to do. > > Sorry, I don't see the problem with mergelocal. Can you elaborate? I might have misread what you meant by mergeLocal, and you might be trying to introduce a default for "git merge" so that without anything on the command line "git merge" would merge something locally available depending on which branch you are on. But I did not think of that, and thought you were saying "look at branch.*.mergelocal (if exists) in the same place we look at branch.*.merge in the current code, and just like the latter is used to match up with the remote refname we just fetched, use the former to match the local tracking branches, to decide what to merge". And if that is what you meant by mergelocal, I do not see much advantage in that approach -- that is what I meant in the response. The remote name is available whether you use tracking branches locally or not, so using that to specify the merge operation that happens after a 'pull' is more consistent, less confusing, and matches the long-hand "git pull $URL remote-branch" a lot better than having another configuration that can be used only half the time. Some people repeatedly argued that remote branch names do not matter. I think they are wrong and are missing the point of distributedness of git. You are fetching from there, so you need to know the name the other end gives them in the first place. But much more importantly, the fact you are fetching from there means some other people could also be fetching from the same place. Now how would you discuss what that common repository recently placed on that branch? You would not use the local tracking branch name which _is_ meaningless to the other person. You use the remote name. For example, I have a separate repository (that happens to be checked out in Meta/ subdirectory of my main working area, so its control files are in Meta/.git repository) to keep things that I push to my 'todo' branch. After I push the updates to 'todo' out to kernel.org from that repository, I usually fetch from kernel.org into that repository, so that I can later see up to which one I have already pushed out. I am old fashioned and still use remotes and non 'separate-remote' layout for this: URL: kernel.org:/pub/scm/git/git.git Push: refs/heads/master:refs/heads/todo Pull: refs/heads/todo:refs/heads/ko As you can see from the above, my 'ko' is the local tracking branch, and 'master' in that repository is what is known as 'todo' to the public. But when I talk about what I have in that branch, I would never say 'master' nor 'ko' -- people would not care how I call that branch locally in my private repository. What's private is private and does not matter to others. Instead I would say something like "my 'todo' branch has drafts for v1.5.0 release notes these days". What does this all mean? It means that remote branch names matter more when you are talking about external communication. And "git pull" (more so for "git fetch") is all about external communication. Obviously, the local names should matter more when you are doing local operations. So if you are using mergeLocal to give a shorthand to "git merge" that does not explicitly say what to merge, the above discussion does not apply. But if that is the case, mergeLocal should also not affect the selection of branches to be merged when "git pull" happens from a remote either. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 20:04 ` Junio C Hamano @ 2007-01-02 20:30 ` Jakub Narebski 2007-01-03 0:24 ` Santi Béjar 2007-01-09 15:05 ` Jeff King 1 sibling, 1 reply; 45+ messages in thread From: Jakub Narebski @ 2007-01-02 20:30 UTC (permalink / raw) To: git Junio C Hamano wrote: > Obviously, the local names should matter more when you are doing > local operations. So if you are using mergeLocal to give a > shorthand to "git merge" that does not explicitly say what to > merge, the above discussion does not apply. But if that is the > case, mergeLocal should also not affect the selection of > branches to be merged when "git pull" happens from a remote > either. You can always use remote = ".", and then remote and local branches are the same... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 20:30 ` Jakub Narebski @ 2007-01-03 0:24 ` Santi Béjar 2007-01-03 23:02 ` Jakub Narebski 0 siblings, 1 reply; 45+ messages in thread From: Santi Béjar @ 2007-01-03 0:24 UTC (permalink / raw) To: Jakub Narebski; +Cc: git On 1/2/07, Jakub Narebski <jnareb@gmail.com> wrote: > Junio C Hamano wrote: > > > Obviously, the local names should matter more when you are doing > > local operations. So if you are using mergeLocal to give a > > shorthand to "git merge" that does not explicitly say what to > > merge, the above discussion does not apply. But if that is the > > case, mergeLocal should also not affect the selection of > > branches to be merged when "git pull" happens from a remote > > either. > > You can always use remote = ".", and then remote and local branches > are the same... Currently it does not work. Santi ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-03 0:24 ` Santi Béjar @ 2007-01-03 23:02 ` Jakub Narebski 0 siblings, 0 replies; 45+ messages in thread From: Jakub Narebski @ 2007-01-03 23:02 UTC (permalink / raw) To: Santi Béjar; +Cc: git Santi Béjar wrote: > On 1/2/07, Jakub Narebski <jnareb@gmail.com> wrote: >> Junio C Hamano wrote: >> >>> Obviously, the local names should matter more when you are doing >>> local operations. So if you are using mergeLocal to give a >>> shorthand to "git merge" that does not explicitly say what to >>> merge, the above discussion does not apply. But if that is the >>> case, mergeLocal should also not affect the selection of >>> branches to be merged when "git pull" happens from a remote >>> either. >> >> You can always use remote = ".", and then remote and local branches >> are the same... > > Currently it does not work. Fact. I remember that there was proposal of having branch.<name>.remote=. and branch.<name>.merge=<ref> to make "git pull" on branch <name> do "git pull . <ref>". There was some discussion about this; perhaps it was not accepted (or forgotten to be accepted after resolving discussion). -- Jakub Narebski Poland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-02 20:04 ` Junio C Hamano 2007-01-02 20:30 ` Jakub Narebski @ 2007-01-09 15:05 ` Jeff King 2007-01-09 16:18 ` Jeff King 1 sibling, 1 reply; 45+ messages in thread From: Jeff King @ 2007-01-09 15:05 UTC (permalink / raw) To: Junio C Hamano; +Cc: git [sorry this is old, but hopefully you remember what we were talking about. :)] On Tue, Jan 02, 2007 at 12:04:33PM -0800, Junio C Hamano wrote: > I might have misread what you meant by mergeLocal, and you might > be trying to introduce a default for "git merge" so that without > anything on the command line "git merge" would merge something > locally available depending on which branch you are on. No, I think you read me right: I wanted a way of saying "this is the local branch from which merges should happen if no other branch is specified". > But I did not think of that, and thought you were saying "look > at branch.*.mergelocal (if exists) in the same place we look at > branch.*.merge in the current code, and just like the latter is > used to match up with the remote refname we just fetched, use > the former to match the local tracking branches, to decide what > to merge". And if that is what you meant by mergelocal, I do > not see much advantage in that approach -- that is what I meant > in the response. The remote name is available whether you use > tracking branches locally or not, so using that to specify the > merge operation that happens after a 'pull' is more consistent, > less confusing, and matches the long-hand "git pull $URL > remote-branch" a lot better than having another configuration > that can be used only half the time. Let me say right now that I'm not _that_ interested in this concept, so I'm going to stop pushing for it. However, I do want to respond to a few points in this mail; feel free to ignore. :) There are two advantages I see to putting local branches in branch.*.merge: 1. there seems to be some newbie confusion over using the remote name. Pull is conceptually (to me anyway), two steps: 1. Fetch from a remote into my local tracking branches 2. Merge from some tracking branch into my current branch. whereas I have seen you explain pull as: 1. Fetch into FETCH_HEAD, selecting some branches for merge 2. Merge any branches marked for merge I know that your model is more flexible, since it supports skipping the tracking branches. But for newbies looking at the config, I think the first makes much more sense. 1. Newbies always have tracking branches, since that's now the default layout. 2. Newbies don't know about FETCH_HEAD, since we don't talk about it in tutorials (and really, with tracking branches, what's the point?). 3. Out of the two steps (fetching and merging), I would expect the .merge config option to be dealth with in the latter. But actually, it is an intimate part of fetching. This doesn't matter if you're pulling, but my workflow (and many others, it seems, especially those who rebase regularly) is: git fetch gitk master...origin git rebase ;# or git-pull 2. There has been a requested feature (which I think makes sense) to create an automatic "upstream" for local branches. I.e., git checkout -b new old hack hack hack git pull ;# should pull from 'old' This should be trivial to implement as git-repo-config branch.$new.mergeLocal $old but instead is requiring some magic to treat '.' as a noop remote. [This ends the productive portion of this mail, but read on for more philosophical wanderings.] > Some people repeatedly argued that remote branch names do not > matter. I think they are wrong and are missing the point of > distributedness of git. You are fetching from there, so you I think the opposite. :) To me, the distributed part of git (and one of its strengths over other systems) is that we are all working on a giant digraph of the history, and git is very efficient at adding to, examining, and communicating about parts of that graph. Refs are just pointers into the graph, and so the names we give them are mostly just local matters (unless we're publishing those names). For example, before I started using separate remotes, I had what by many would be considered a funny setup. I was used to working with master and origin, but I wanted to start tracking next instead. So I made my origin track your next, and I called my master what you call next (plus local commits). As a result, I called your master 'stable' so I could still access it. So the history was distributed, but the names were completely local. Another oft-mentioned example from the big bzr debate is a fork: what if I stop pulling from you, and start pulling from somebody else? The pointers have changed, but the underlying history is inherently the same. There's no penalty for me to switch names. That isn't to say the names of the pointers are without value. Talking about 'master' and 'next' is very useful for humans. But what we _really_ mean is "Junio's master" and "Junio's next", because you are publishing those pointers. I don't know (or care) what's on Linus' master, so he can call it whatever he wants. Or if I do care, I don't necessarily care how it relates to your master. So to me, getting hung up on remote names (that is, treating them as anything besides publishing points) misses the point of git's distributedness. Which isn't to say branch.*.merge looking at remote refs is _wrong_, but that using local names is at least as right (conceptually). :) > the same place. Now how would you discuss what that common > repository recently placed on that branch? You would not use > the local tracking branch name which _is_ meaningless to the > other person. You use the remote name. Sure, you would. Because you're talking about that other repo. But my mental model is that all git operations are local operations, except for fetching and pushing. I really think of pull as a shorthand "git-fetch; git-merge". So to me, git-merge is a local operation that should deal with local names. > As you can see from the above, my 'ko' is the local tracking > branch, and 'master' in that repository is what is known as > 'todo' to the public. But when I talk about what I have in that > branch, I would never say 'master' nor 'ko' -- people would not > care how I call that branch locally in my private repository. > What's private is private and does not matter to others. > Instead I would say something like "my 'todo' branch has drafts > for v1.5.0 release notes these days". Exactly. Only published names matter to other people. However, I contend that published names stop mattering once you have a mapping to local names. > What does this all mean? It means that remote branch names > matter more when you are talking about external communication. > And "git pull" (more so for "git fetch") is all about external > communication. I think this is where we really disagree. As I said, git-pull is really just "fetch+merge" to me. And merge isn't about external communication. > Obviously, the local names should matter more when you are doing > local operations. So if you are using mergeLocal to give a > shorthand to "git merge" that does not explicitly say what to > merge, the above discussion does not apply. But if that is the What I'm suggesting is that it can be used for either (local merges or pulls, since both are git-merge. > case, mergeLocal should also not affect the selection of > branches to be merged when "git pull" happens from a remote > either. I think I am fundamentally denying the way "for-merge" branch selection works in git-pull. That is, it isn't the way I think of it conceptually, perhaps because I don't actually 'pull' very often. I _always_ fetch first. -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2007-01-09 15:05 ` Jeff King @ 2007-01-09 16:18 ` Jeff King 0 siblings, 0 replies; 45+ messages in thread From: Jeff King @ 2007-01-09 16:18 UTC (permalink / raw) To: Junio C Hamano; +Cc: git On Tue, Jan 09, 2007 at 10:05:24AM -0500, Jeff King wrote: > There are two advantages I see to putting local branches in branch.*.merge: Let me add a third: There are some operations which care about who our upstream is, but didn't necessarily just do a fetch (so FETCH_HEAD is not an option). For example, I have a short porcelain-ish script that formats all of my changes as patches and shows them as a mutt mailbox. If you don't specify an upstream, it uses 'origin'. However, this isn't right if I'm on 'next'. What I _really_ want is to say "a sensible upstream branch for the branch I'm currently on" which is basically what "mergeLocal" would be. Come to think of it, mergeLocal is a terrible name, since it should really would be for merging, rebasing, and anything else which wanted to say "where did I probably come from?" So perhaps "upstream" would make more sense? -Peff ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-23 5:12 ` Jeff King 2006-12-23 5:29 ` Nicolas Pitre 2006-12-23 6:15 ` Junio C Hamano @ 2006-12-23 8:31 ` Jakub Narebski 2 siblings, 0 replies; 45+ messages in thread From: Jakub Narebski @ 2006-12-23 8:31 UTC (permalink / raw) To: git Jeff King wrote: > It also means that even without a remote, the merge option makes sense > (e.g., if I do repeated merges from one local branch to another). And it > means that it's _always_ correct for "checkout -b <new> <track>" to set > branch.<new>.merge to <track>, without having to worry about finding an > appropriate remote. Without remote (or rather with remote ".") remote branch names are the same as tracking branch names :-) -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-21 22:17 confusion over the new branch and merge config Nicolas Pitre 2006-12-21 23:01 ` Junio C Hamano @ 2006-12-22 8:41 ` Andy Parkins 2006-12-22 9:39 ` Lars Hjemli 1 sibling, 1 reply; 45+ messages in thread From: Andy Parkins @ 2006-12-22 8:41 UTC (permalink / raw) To: git; +Cc: Nicolas Pitre On Thursday 2006 December 21 22:17, Nicolas Pitre wrote: Sorry Alan; I thought it was your bug - it wasn't... > $ git branch -r > * master > origin/HEAD > origin/html > origin/maint > origin/man > origin/master > origin/next > origin/pu > origin/todo I'm trying to track down why "master" is being shown in this case"; would it be possible to show me the output of $ tree .git/refs/heads .git/refs/remotes As I am having trouble reproducing this error. Andy -- Dr Andy Parkins, M Eng (hons), MIEE andyparkins@gmail.com ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 8:41 ` Andy Parkins @ 2006-12-22 9:39 ` Lars Hjemli 2006-12-22 15:10 ` Nicolas Pitre 0 siblings, 1 reply; 45+ messages in thread From: Lars Hjemli @ 2006-12-22 9:39 UTC (permalink / raw) To: Andy Parkins; +Cc: git, Nicolas Pitre On 12/22/06, Andy Parkins <andyparkins@gmail.com> wrote: > On Thursday 2006 December 21 22:17, Nicolas Pitre wrote: > > $ git branch -r > > * master > > origin/HEAD > > origin/html > > origin/maint > > origin/man > > origin/master > > origin/next > > origin/pu > > origin/todo > > I'm trying to track down why "master" is being shown in this case"; This looks very much like "git branch -a". I've just tried this: $ git clone git://git2.kernel.org/pub/scm/git/git.git Initialized empty Git repository in /home/larsh/src/tmp/git/.git/ remote: Generating pack... remote: Done counting 34527 objects. remote: Deltifying 34527 objects. remote: 100% (34527/34527) done Indexing 34527 objects. remote: Total 34527, written 34527 (delta 23920), reused 34111 (delta 23623) 100% (34527/34527) done Resolving 23920 deltas. 100% (23920/23920) done Checking files out... 100% (748/748) done $ cd git $ git branch -r origin/HEAD origin/html origin/maint origin/man origin/master origin/next origin/pu origin/todo $ git branch -a * master origin/HEAD origin/html origin/maint origin/man origin/master origin/next origin/pu origin/todo $ cp .git/refs/heads/master .git/refs/remotes/master $ git branch -r master origin/HEAD origin/html origin/maint origin/man origin/master origin/next origin/pu origin/todo $ git symbolic-ref HEAD refs/remotes/master $ git branch -r fatal: HEAD not found below refs/heads! $ git --version git version 1.4.4.2.gee60 -- larsh ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: confusion over the new branch and merge config 2006-12-22 9:39 ` Lars Hjemli @ 2006-12-22 15:10 ` Nicolas Pitre 0 siblings, 0 replies; 45+ messages in thread From: Nicolas Pitre @ 2006-12-22 15:10 UTC (permalink / raw) To: Lars Hjemli; +Cc: Andy Parkins, git On Fri, 22 Dec 2006, Lars Hjemli wrote: > On 12/22/06, Andy Parkins <andyparkins@gmail.com> wrote: > > On Thursday 2006 December 21 22:17, Nicolas Pitre wrote: > > > $ git branch -r > > > * master > > > origin/HEAD > > > origin/html > > > origin/maint > > > origin/man > > > origin/master > > > origin/next > > > origin/pu > > > origin/todo > > > > I'm trying to track down why "master" is being shown in this case"; > > This looks very much like "git branch -a". Yes it was. I just pasted the wrong line in my example. Sorry. Nicolas ^ permalink raw reply [flat|nested] 45+ messages in thread
end of thread, other threads:[~2007-01-09 16:18 UTC | newest] Thread overview: 45+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-12-21 22:17 confusion over the new branch and merge config Nicolas Pitre 2006-12-21 23:01 ` Junio C Hamano 2006-12-21 23:21 ` Sean 2006-12-22 0:39 ` Junio C Hamano 2006-12-22 0:46 ` Junio C Hamano 2006-12-22 1:01 ` Sean 2006-12-22 8:31 ` Andy Parkins 2006-12-22 7:50 ` Alan Chandler 2006-12-22 8:21 ` Junio C Hamano 2006-12-22 8:39 ` Andy Parkins 2006-12-22 15:25 ` Alan Chandler 2006-12-22 20:49 ` Nicolas Pitre 2006-12-22 21:04 ` Jakub Narebski 2006-12-22 21:20 ` Nicolas Pitre 2006-12-22 22:40 ` Jakub Narebski 2006-12-22 23:39 ` Junio C Hamano 2006-12-23 3:10 ` Tom Prince 2006-12-23 5:11 ` Nicolas Pitre 2006-12-23 5:12 ` Jeff King 2006-12-23 5:29 ` Nicolas Pitre 2006-12-23 6:15 ` Junio C Hamano 2006-12-23 6:22 ` Shawn Pearce 2006-12-23 6:28 ` Jeff King 2006-12-23 7:11 ` Junio C Hamano 2006-12-23 7:25 ` Jeff King 2006-12-23 9:51 ` Junio C Hamano 2006-12-23 10:40 ` Jakub Narebski 2006-12-23 15:58 ` Johannes Schindelin 2006-12-23 22:48 ` Jakub Narebski 2006-12-24 6:15 ` Jeff King 2006-12-24 20:49 ` Nicolas Pitre 2006-12-26 7:33 ` Jeff King 2007-01-02 14:49 ` Jeff King 2007-01-02 17:32 ` Junio C Hamano 2007-01-02 17:34 ` Jeff King 2007-01-02 20:04 ` Junio C Hamano 2007-01-02 20:30 ` Jakub Narebski 2007-01-03 0:24 ` Santi Béjar 2007-01-03 23:02 ` Jakub Narebski 2007-01-09 15:05 ` Jeff King 2007-01-09 16:18 ` Jeff King 2006-12-23 8:31 ` Jakub Narebski 2006-12-22 8:41 ` Andy Parkins 2006-12-22 9:39 ` Lars Hjemli 2006-12-22 15:10 ` Nicolas Pitre
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).