From: Peter Harris <git@peter.is-a-geek.org>
To: Josef Wolf <jw@raven.inka.de>, git@vger.kernel.org
Subject: Re: git-svn and repository hierarchy?
Date: Tue, 3 Mar 2009 19:18:04 -0500 [thread overview]
Message-ID: <eaa105840903031618s5e0b6f24j64aade8d752fb11@mail.gmail.com> (raw)
In-Reply-To: <20090303223600.GB11278@raven.wolf.lan>
On Tue, Mar 3, 2009 at 5:36 PM, Josef Wolf wrote:
>
> I'd rather not let every clone talk to subversion for several reasons.
> One of them is that it is very inconvenient (e.g. the password has to
> be entered several times for every commit).
Sounds like subversion isn't properly caching your credentials, or
your admin is paranoid and turned off the svn credential cache. I
can't remember the last time I had to enter a password.
Of course, git-svn-repo can't cache credentials, since it has to
impersonate different users. You are impersonating different users so
that the svn author field is correct, aren't you? But that shouldn't
be a problem for userN working on cloneN.
> After all, the whole point
> for having git-svn-repos is for the clone to avoid working directly
> against the subversion repos. If every clone works against subversion
> anyway, I can get rid of git-svn-repos as well.
From my perspective, the main advantage of git-svn-repos is the inital
clone. Subversion is way too slow to clone an entire project's history
(days, vs minutes for git). Subsequent 'git pull --rebase's are faster
than 'git svn rebase's, too, although not by the same ratio (except
for large subtree moves, which really are that much faster).
> On Tue, Mar 03, 2009 at 02:35:28PM -0500, Peter Harris wrote:
>> Also, this line says "rebase my changes onto those of ../clone$clone",
>> which isn't what you want. It will end up rebasing svn commits that
>> the client didn't have on top of the client's commits, and will break
>> git-svn's index. Don't use --rebase here.
>
> Hmm, I must have misunderstood Michael, then. Wasn't he suggesting
> to rebase here? Here's the citation:
>
> |> (cd git-svn-repos; git pull ../clone1) # if this line is executed,
> |
> |That's the problem. This creates a merge after which you 1-2-3-4 and
> |1-2'-3'-4' plus the merge of 4 and 4'.
> |
> |Instead, use git pull --rebase here. You don't want merges in the branch
> |from which you dcommit.
I think he meant to say "git pull ../cloneN && git rebase trunk".
>> > # Although we have resolved the conflict, spurious conflicts are
>> > # propagated to the clones
>>
>> ...and this is because you had clones all merge from each other (via
>> git-svn-repos) *before* the changes were in svn.
>
> Does that mean that the conflicts would disappear if I do
> git-svn-rebase + git-svn-dcommit after every pull from a clone?
Well, 'disappear' is a strong word. "cloneX" has to be willing to
reset to your branch if you have resolved any conflicts on behalf of
cloneX. But the other cloneNs should not see those conflicts, at
least.
Not to mention that it's not outside the realm of possibility that
various cloneNs may be working with each other without involving you.
Plus, there is a small window where clones may be pulling from each
other, and will have to resolve the same conflicts you resolve during
your "git svn dcommit". I'm sure you've heard the saying "Every
computer science problem can be solved by adding a level of
indirection." You could add a git-svn-stage that pulls from cloneN and
does the dcommit (and then pushes to git-svn-repos, or lets
git-svn-repos do its own "git svn fetch"), leaving git-svn-repos clean
for cloneN to pull from...
Peter Harris
next prev parent reply other threads:[~2009-03-04 0:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-24 22:34 git-svn and repository hierarchy? Josef Wolf
2009-02-25 9:26 ` Michael J Gruber
2009-02-25 23:24 ` Josef Wolf
2009-02-26 1:02 ` Peter Harris
2009-02-27 16:58 ` Josef Wolf
2009-02-27 18:11 ` Peter Harris
2009-02-27 23:58 ` Josef Wolf
2009-02-28 2:41 ` Peter Harris
2009-02-27 17:12 ` Josef Wolf
2009-02-27 17:45 ` Michael J Gruber
2009-02-27 22:05 ` Josef Wolf
2009-02-28 17:59 ` Michael J Gruber
2009-03-03 18:51 ` Josef Wolf
2009-03-03 19:35 ` Peter Harris
2009-03-03 22:36 ` Josef Wolf
2009-03-04 0:18 ` Peter Harris [this message]
2009-03-04 19:27 ` Josef Wolf
2009-03-04 22:06 ` Peter Harris
2009-03-05 18:05 ` Josef Wolf
2009-03-05 19:48 ` Peter Harris
2009-03-06 16:10 ` Josef Wolf
2009-03-06 16:58 ` Peter Harris
2009-03-06 17:57 ` Josef Wolf
2009-03-08 20:33 ` Florian Mickler
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=eaa105840903031618s5e0b6f24j64aade8d752fb11@mail.gmail.com \
--to=git@peter.is-a-geek.org \
--cc=git@vger.kernel.org \
--cc=jw@raven.inka.de \
/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 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).