Re: [PATCH] show-branch: show all local heads when only giving one rev along --topics
Mike Hommey m...@glandium.org writes: (Maybe --topics should always require one rev on the command line?) That sounds line a good thing to do. - else if (all_heads + all_remotes) - snarf_refs(all_heads, all_remotes); else { while (0 ac) { append_one_rev(*av); ac--; av++; } + if (all_heads + all_remotes) + snarf_refs(all_heads, all_remotes); Hmm. Is this safe and will not cause problems by possibly duplicated refnames that came from the command line and the ones that came from for-each-ref iteration? I am not saying the change is problematic; it is just I haven't looked at this code for a long time that the existing machinery is already designed to tolerate duplicated input. Thanks. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] show-branch: show all local heads when only giving one rev along --topics
On Mon, Mar 30, 2015 at 03:24:26PM -0700, Junio C Hamano wrote: Mike Hommey m...@glandium.org writes: (Maybe --topics should always require one rev on the command line?) That sounds line a good thing to do. - else if (all_heads + all_remotes) - snarf_refs(all_heads, all_remotes); else { while (0 ac) { append_one_rev(*av); ac--; av++; } + if (all_heads + all_remotes) + snarf_refs(all_heads, all_remotes); Hmm. Is this safe and will not cause problems by possibly duplicated refnames that came from the command line and the ones that came from for-each-ref iteration? I am not saying the change is problematic; it is just I haven't looked at this code for a long time that the existing machinery is already designed to tolerate duplicated input. It is: https://github.com/git/git/blob/master/builtin/show-branch.c#L382 In case you wonder about allow_dups, the only case in which it's 1 is: https://github.com/git/git/blob/master/builtin/show-branch.c#L784 which is the reflog case, which is the case before that `else` in the patch. That is, both append_one_rev and snarf_refs end up calling append_ref with allow_dups=0. Cheers, Mike -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] show-branch: show all local heads when only giving one rev along --topics
Junio C Hamano gits...@pobox.com writes: ...? I am not saying the change is problematic; it is just I haven't looked at this code for a long time that the existing machinery is already designed to tolerate duplicated input. for a long time to say that the existing code is OK or not is what I meant to say. Sorry for the noise. Thanks. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] show-branch: show all local heads when only giving one rev along --topics
On Mon, Mar 16, 2015 at 05:38:06PM +0900, Mike Hommey wrote: git show-branch --topics rev revs... displays ancestry graph, only considering commits that are in all given revs, except the first one. git show-branch displays ancestry graph for all local branches. Unfortunately, git show-branch --topics rev only prints out the rev info for the given rev, and nothing else, e.g.: $ git show-branch --topics origin/master [origin/master] Sync with 2.3.3 While there is an option to add all remote-tracking branches (-r), and another to add all local+remote branches (-a), there is no option to add only local branches. Adding such an option could be considered, but a user would likely already expect that the above command line considers the lack of rev other than for --topics as meaning all local branches, like when there is no argument at all. Moreover, when using -r and -a along with --topics, the first local or remote-tracking branch, depending on alphabetic order is used instead of the one given after --topics (any rev given on the command line is actually simply ignored when either -r or -a is given). And if no rev is given at all, the fact that the first alphetical branch is the base of topics is probably not expected by users (Maybe --topics should always require one rev on the command line?) This change makes show-branch --topics $rev act as show-branch --topics $rev $(git for-each-ref refs/heads --format='%(refname:short)') show-branch -r --topics $rev ... act as show-branch --topics $rev ... $(git for-each-ref refs/remotes --format='%(refname:short)') instead of show-branch --topics $(git for-each-ref refs/remotes --format='%(refname:short)') and show-branch -a --topics $rev ... act as show-branch --topics $rev ... $(git for-each-ref refs/heads refs/remotes --format='%(refname:short)') instead of show-branch --topics $(git for-each-ref refs/heads refs/remotes --format='%(refname:short)') Sorry, this was missing: Signed-off-by: Mike Hommey m...@glandium.org Mike -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html