From: Christopher J. Morrone <morrone2@llnl.gov>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] Fwd: The Lustre community and GIT
Date: Wed, 16 Dec 2009 15:01:23 -0800 [thread overview]
Message-ID: <4B2966C3.1050707@llnl.gov> (raw)
In-Reply-To: <9784AD2F-B1E4-4A48-BDB5-6B932437EBD9@sun.com>
Andreas Dilger wrote:
> I know that Brian Behlendorf and Ricardo investigated a number of
> different tools for managing patches, and topgit was the one they
> chose. Another tool in this vein is "guilt", which manages a patch
> series in a way similar to "quilt".
Yes, I have discussed this at length with Brian.
The main problem with guilt is that seems to be designed with the single
developer in mind, and not really well suited for sharing. The major
problem being that the patches and series information are not stored in
git. You need to come up with your own method of storing and keeping
track of the patch set.
With topgit, anyone can simply clone our repo and checkout the "t18/top"
branch of lustre, and have a tree that contains all of our patches.
They don't really even need to use topgit. And, in fact, I think Brian
is the only person using topgit directly on the project that you are
referring to. The others usually just branch off one of his topgit
branches and pass patches back to Brian.
> For developers that aren't keeping a huge number of patches, and
> especially not a large number of dependent patches, "git rebase" is
> probably sufficient. That will refresh the patches against changes in
> the upstream repository.
Except that "git rebase" is a destructive operation, right? It is fine
for the single developer to do that, but you basically can't rebase a
branch that you have published. Here is the kind of comment that I see
associate with git rebase over and over on the web:
"You should only use git rebase on your local-only branches. Its purpose
is to keep your local, invisible changes up-to-date so that when you
publish them they'll be more relevant and easy to understand for others."
So rebase is off limits to us when managing our published "llnl" branch.
(This is also why topgit uses "git merge" internally, not "git rebase".)
> As for tracking hidden semantic conflicts that do not have contextual
> conflicts, that is of course more difficult. I think one important way
> to track this is that our own commit message policy will be to include
> the bug number into the "short" (one line) patch description, and if you
> do a "git rebase" against the updated repo and your patch for that bug
> does not disappear due to the upstream commit for that bug, the patch
> should be reviewed.
Yes, that might work. I am hoping that it will work, but I am not
entirely convinced yet. If we were using git rebase, our history would
be shorter and easer to follow. But we can't use rebase. So I'm not
sure how easy it will be to track things using the log with repeated merges.
Maybe we just need to try it and see how it goes.
> I think that depends on how topgit is doing the updates against the
> upstream repository. If it is doing a "rebase" each time, then there
> should only be a single git branch (each with a single commit) for each
> patch that you have applied. If it does this via a "merge" then there
> will be new commits for each pull that you do from upstream that is
> resolving conflicts, and the repo will become a mess.
It uses "git merge", because "git rebase" would basically make the whole
thing unsharable. Many of the merges turn into fast-forwards, but not
all of them.
Chris
next prev parent reply other threads:[~2009-12-16 23:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2b20c7140912130831t658c2790hb38c3752c18ec128@mail.gmail.com>
2009-12-13 18:47 ` [Lustre-devel] Fwd: The Lustre community and GIT Peter Braam
2009-12-15 1:00 ` Christopher J. Morrone
2009-12-15 21:05 ` Andreas Dilger
2009-12-15 22:19 ` Christopher J. Morrone
2009-12-15 23:25 ` Andreas Dilger
2009-12-16 1:18 ` Christopher J. Morrone
2009-12-16 7:34 ` Andreas Dilger
2009-12-16 23:01 ` Christopher J. Morrone [this message]
2009-12-17 2:53 ` David Dillow
2009-12-16 17:24 ` Yuriy Umanets
2009-12-16 22:47 ` Andreas Dilger
2009-12-17 12:12 ` Yuriy Umanets
2009-12-26 15:01 ` Peter Braam
2009-12-28 0:49 ` Mag Gam
2009-12-30 23:12 ` Andreas Dilger
2009-12-31 2:20 ` Peter Braam
2010-02-05 13:16 ` Mag Gam
2010-02-05 17:35 ` David Dillow
2010-02-05 17:42 ` Andreas Dilger
2010-02-06 14:10 ` Mag Gam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B2966C3.1050707@llnl.gov \
--to=morrone2@llnl.gov \
--cc=lustre-devel@lists.lustre.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.