* branch versioning
@ 2010-10-04 13:18 Nguyen Thai Ngoc Duy
2010-10-04 13:25 ` Matthieu Moy
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2010-10-04 13:18 UTC (permalink / raw)
To: Git Mailing List
Hi,
How do you guys manage versions of a topic branch? I usually end up
saving format-patch series somewhere or forget all old versions.
Although I really want to keep old versions around. reflog to me is
polluted with every kind of branch updates. And it's local
information. It can't be transferred to another repo (or can it?)
On the same subject, I have quite a few old topic branches that I
rarely touch. I don't want to remove them. I just want to hide them
away from "git branch". I've been thinking of "attic/" namespace that
"git branch" by default will not show. Just wondering if other people
face the same problem..
--
Duy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:18 branch versioning Nguyen Thai Ngoc Duy
@ 2010-10-04 13:25 ` Matthieu Moy
2010-10-04 13:29 ` Ævar Arnfjörð Bjarmason
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Matthieu Moy @ 2010-10-04 13:25 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: Git Mailing List
Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
> Hi,
>
> How do you guys manage versions of a topic branch? I usually end up
> saving format-patch series somewhere or forget all old versions.
> Although I really want to keep old versions around. reflog to me is
> polluted with every kind of branch updates. And it's local
> information. It can't be transferred to another repo (or can it?)
I don't have strong needs in branch-versionning, so usually, the
reflog is OK for me. When I need to save something, I set a tag on the
current version of the branch before continuing (that's somehow manual
versionning: the tag isn't versionned, so if I actually need history,
I'll set several tags like refs/tags/sent-to-list-as-v1
refs/tags/before-starting-rebase, ...).
But other tools like stgit, topgit & friends may help to manage that
in a cleaner way.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:18 branch versioning Nguyen Thai Ngoc Duy
2010-10-04 13:25 ` Matthieu Moy
@ 2010-10-04 13:29 ` Ævar Arnfjörð Bjarmason
2010-10-04 13:50 ` Nguyen Thai Ngoc Duy
2010-10-04 13:44 ` Michael J Gruber
2010-10-04 14:33 ` Tomas Carnecky
3 siblings, 1 reply; 8+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-10-04 13:29 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: Git Mailing List
On Mon, Oct 4, 2010 at 13:18, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> How do you guys manage versions of a topic branch? I usually end up
> saving format-patch series somewhere or forget all old versions.
> Although I really want to keep old versions around. reflog to me is
> polluted with every kind of branch updates. And it's local
> information. It can't be transferred to another repo (or can it?)
I usually have foo, foo-v2, foo-v3 which eventually gets reset back to
foo once I'm sure nobody cares about the initial one or foo-v2. It's
very chaotic.
So my git.git on GitHub is up to 123 branches, and I don't even want
to know what my personal git.git is at. I also save my outgoing
format-patch E-Mails, but would probably do less of that if there was
support for attaching the comments after the diffstat in a git-note or
something.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:18 branch versioning Nguyen Thai Ngoc Duy
2010-10-04 13:25 ` Matthieu Moy
2010-10-04 13:29 ` Ævar Arnfjörð Bjarmason
@ 2010-10-04 13:44 ` Michael J Gruber
2010-10-04 14:10 ` Nguyen Thai Ngoc Duy
2010-10-04 14:33 ` Tomas Carnecky
3 siblings, 1 reply; 8+ messages in thread
From: Michael J Gruber @ 2010-10-04 13:44 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: Git Mailing List
Nguyen Thai Ngoc Duy venit, vidit, dixit 04.10.2010 15:18:
> Hi,
>
> How do you guys manage versions of a topic branch? I usually end up
> saving format-patch series somewhere or forget all old versions.
> Although I really want to keep old versions around. reflog to me is
> polluted with every kind of branch updates. And it's local
> information. It can't be transferred to another repo (or can it?)
>
> On the same subject, I have quite a few old topic branches that I
> rarely touch. I don't want to remove them. I just want to hide them
> away from "git branch". I've been thinking of "attic/" namespace that
> "git branch" by default will not show. Just wondering if other people
> face the same problem..
Same problem, without a perfect solution. I have a branch mjg/foo for a
topic in flight. If I need to submit v2, I tag the old tip mjg/foo-v1
and rebase -i, etc. Once a patch gets accepted, I do:
- Merge the git.git commit with the applied patch to mjg/foo (with a
message like "Applied as commit deadbeef on next). The merge diff shows
the differences between my patch and the actual commit on git.git.
- Tag the tip as mjg/applied/foo.
- Delete the branch.
- Delete the branch on my repos if it has been pushed out already (this
point sucks).
That way my branch namespace is reasonably clean, and the graph view on
github, e.g., is somewhat meaningful. My tag name space is a bit crowded...
I also keep the commit notes (post ---) in a note ;)
Michael
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:29 ` Ævar Arnfjörð Bjarmason
@ 2010-10-04 13:50 ` Nguyen Thai Ngoc Duy
2010-10-04 14:16 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 8+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2010-10-04 13:50 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Git Mailing List
On 10/4/10, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
> On Mon, Oct 4, 2010 at 13:18, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> > How do you guys manage versions of a topic branch? I usually end up
> > saving format-patch series somewhere or forget all old versions.
> > Although I really want to keep old versions around. reflog to me is
> > polluted with every kind of branch updates. And it's local
> > information. It can't be transferred to another repo (or can it?)
>
>
> I usually have foo, foo-v2, foo-v3 which eventually gets reset back to
> foo once I'm sure nobody cares about the initial one or foo-v2. It's
> very chaotic.
You remind me of my ~100 patch rebase/refactor on busybox-w32. I had
up to master.7 :)
> So my git.git on GitHub is up to 123 branches, and I don't even want
> to know what my personal git.git is at. I also save my outgoing
> format-patch E-Mails, but would probably do less of that if there was
> support for attaching the comments after the diffstat in a git-note or
> something.
OK. Thanks for the information. I'll try my best to stay away from
your repo :-D. Seriously, how can you select a branch out of those 123
branches? Does git-branch support regex matching or.. (looked up
git-branch.txt, no it does not)
--
Duy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:44 ` Michael J Gruber
@ 2010-10-04 14:10 ` Nguyen Thai Ngoc Duy
0 siblings, 0 replies; 8+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2010-10-04 14:10 UTC (permalink / raw)
To: Michael J Gruber; +Cc: Git Mailing List
On Mon, Oct 04, 2010 at 03:44:24PM +0200, Michael J Gruber wrote:
> That way my branch namespace is reasonably clean, and the graph view on
> github, e.g., is somewhat meaningful. My tag name space is a bit crowded...
This might help you. I don't know. I think the idea is good, but you may
need a negative pattern, or multiple patterns... Just a starting point.
If I git-branch supported pattern matching and negative pattern, then
my "attic/" hidden namespace would be solved. Hmm..
>From 461bd140c71fc242470c08523bc7becefb9aa2cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= <pclouds@gmail.com>
Date: Mon, 4 Oct 2010 21:05:54 +0700
Subject: [PATCH] tag: add core.taglist to let user customize "git tag -l"
Be default "git tag" alone (or "git tag -l") will list all tags.
Let user specify how they want to list in this case via core.taglist
---
Documentation/git-tag.txt | 3 ++-
builtin/tag.c | 7 ++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
index 31c78a8..770d1d8 100644
--- a/Documentation/git-tag.txt
+++ b/Documentation/git-tag.txt
@@ -69,7 +69,8 @@ OPTIONS
-l <pattern>::
List tags with names that match the given pattern (or all if no pattern is given).
- Typing "git tag" without arguments, also lists all tags.
+ Typing "git tag" without arguments, also lists all tags matched
+ by core.taglist ('*' if undefined)
--contains <commit>::
Only list tags which contain the specified commit.
diff --git a/builtin/tag.c b/builtin/tag.c
index d311491..33620f6 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -22,6 +22,7 @@ static const char * const git_tag_usage[] = {
};
static char signingkey[1000];
+static const char *default_pattern = "*";
struct tag_filter {
const char *pattern;
@@ -96,7 +97,7 @@ static int list_tags(const char *pattern, int lines,
struct tag_filter filter;
if (pattern == NULL)
- pattern = "*";
+ pattern = default_pattern;
filter.pattern = pattern;
filter.lines = lines;
@@ -234,6 +235,10 @@ static int git_tag_config(const char *var, const char *value, void *cb)
set_signingkey(value);
return 0;
}
+ if (!strcmp(var, "core.taglist")) {
+ git_config_string(&default_pattern, var, value);
+ return 0;
+ }
return git_default_config(var, value, cb);
}
--
1.7.0.2.445.gcbdb3
--
Duy
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:50 ` Nguyen Thai Ngoc Duy
@ 2010-10-04 14:16 ` Ævar Arnfjörð Bjarmason
0 siblings, 0 replies; 8+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-10-04 14:16 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: Git Mailing List
On Mon, Oct 4, 2010 at 13:50, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> OK. Thanks for the information. I'll try my best to stay away from
> your repo :-D. Seriously, how can you select a branch out of those 123
> branches? Does git-branch support regex matching or.. (looked up
> git-branch.txt, no it does not)
I usually only have 1-4 branches active at any one point, so it
doesn't get too bad.
I also have a special tag in my E-Mail folder for patches that Junio
hasn't picked up yet or those that I need to work on. It's currently
at around 200 patches :)
I mostly select branches with Emacs's magit which has a fuzzy regex
based selector. "git branch -a | grep ..." also works.
It also helps to use long descriptive branch names, e.g.:
run-partial-expensive-git-notes-test-everywhere
run-partial-expensive-git-notes-test-everywhere-v2
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: branch versioning
2010-10-04 13:18 branch versioning Nguyen Thai Ngoc Duy
` (2 preceding siblings ...)
2010-10-04 13:44 ` Michael J Gruber
@ 2010-10-04 14:33 ` Tomas Carnecky
3 siblings, 0 replies; 8+ messages in thread
From: Tomas Carnecky @ 2010-10-04 14:33 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: Git Mailing List
On 10/4/10 3:18 PM, Nguyen Thai Ngoc Duy wrote:
> Hi,
>
> How do you guys manage versions of a topic branch? I usually end up
> saving format-patch series somewhere or forget all old versions.
> Although I really want to keep old versions around. reflog to me is
> polluted with every kind of branch updates. And it's local
> information. It can't be transferred to another repo (or can it?)
>
> On the same subject, I have quite a few old topic branches that I
> rarely touch. I don't want to remove them. I just want to hide them
> away from "git branch". I've been thinking of "attic/" namespace that
> "git branch" by default will not show. Just wondering if other people
> face the same problem..
There was a blog post from someone suggesting how to extend rebase to
track the old and new commits so the old ones don't get lost (sadly I
can't find the blog post anymore). The idea was to add the old commit as
the second parent to the newly rebased commits. This way you can track
the evolution of commits across multiple iterations. You could do the
same with topic branches: after you create the new version of the topic
branch, add the old topic branch as the second parent of the new branch
head (use merge -s ours to discard changes made by the old topic
branch). And to submit the commits in a topic branch for review you'd
use --first-parent.
tom
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-10-04 14:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-04 13:18 branch versioning Nguyen Thai Ngoc Duy
2010-10-04 13:25 ` Matthieu Moy
2010-10-04 13:29 ` Ævar Arnfjörð Bjarmason
2010-10-04 13:50 ` Nguyen Thai Ngoc Duy
2010-10-04 14:16 ` Ævar Arnfjörð Bjarmason
2010-10-04 13:44 ` Michael J Gruber
2010-10-04 14:10 ` Nguyen Thai Ngoc Duy
2010-10-04 14:33 ` Tomas Carnecky
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).