git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-svn: update documentation with CAVEATS section

From
EWEric Wong <normalperson@yhbt.net>
Date
Aug 23, 2007, 06:26 UTC
Message-ID
<20070823062631.GD4417@hand.yhbt.net>
In-Reply-To
<85r6luiydb.fsf@lola.goethe.zz>
David Kastrup <dak@gnu.org> wrote:
Show 44 quoted lines
> Eric Wong <normalperson@yhbt.net> writes:
> > David Kastrup <dak@gnu.org> wrote:
> >> Junio C Hamano <gitster@pobox.com> writes:
> >> > Eric Wong <normalperson@yhbt.net> writes:
> >> >
> >> >>   I've been meaning to do this for a while, hopefully this cuts
> >> >>   down on the redundant mailing list traffic about these subjects.
> >> >> ...
> >> >> +CAVEATS
> >> >> +-------
> >> >> +
> >> >> +For the sake of simplicity and interoperating with a less-capable system
> >> >> +(SVN), it is recommended that all git-svn users clone, fetch and dcommit
> >> >> +directly from the SVN server, and avoid all git-clone/pull/merge/push
> >> >> +operations between git repositories and branches.  The recommended
> >> >> +method of exchanging code between git branches and users is
> >> >> +git-format-patch and git-am, or just dcommiting to the SVN repository.
> >> >> +
> >> >> +Running 'git-merge' or 'git-pull' is NOT recommended on a branch you
> >> >> +plan to dcommit from.  Subversion does not represent merges in any
> >> >> +reasonable or useful fashion; so users using Subversion cannot see any
> >> >> +merges you've made.
> >> >
> >> > Ok, my ruling before 1.5.3 is to take this patch, and encourage
> >> > interested parties to help Eric adding reliable support for the
> >> > feature after that, if such is possible.
> >> 
> >> Couldn't we at least get a _documentation_ of the current behavior
> >> when actually using git for branch work?  Knowing what will fail how
> >> and when is not as good as things just working as one would expect,
> >> but it certainly beats obscure warnings.
> >> 
> >> For example, I consider it rather unacceptable that nowhere is
> >> documented just _how_ git-svn chooses one Subversion branch to commit
> >> to.
> >
> > dcommit always chooses the last SVN branch it branched off from.
> 
> No, it doesn't.  That's the problem.  If I do
> git-merge master
> in a side branch, and do git-svn dcommit afterwards, the commit
> goes to the master branch.
> 
> Which is utterly unexpected.

Oops, sorry I only read your response and forgot about the original topic. Yes, merging between SVN branches in git breaks dcommit badly, which is why I advise against using it. I'll try to fix it when I've got more free time.

Show 7 quoted lines
> This is already a _large_ help for avoiding clobbering the central
> repository.  But I stress that it would be much better if git-svn
> dcommit/rebase stayed exclusively on the branch that is associated
> with it/fetching in the "svn" config section, like git does in general
> with remotes.  No random branch jumping after merges or (to be
> _really_ avoided) rebases and certainly after cherry-picking within
> git.

I think I see where you're coming from, now. git-svn doesn't ever associate remotes with local branches in the .git/config like regular git-clone.

I just cloned git.git from kernel.org again to see that .git/config associates a local branch with a remote branch like this:

----------------------------------------------------------------
[branch "master"]
        remote = origin
        merge = refs/heads/master
----------------------------------------------------------------

I used git before this feature ever existed, and got used to git without ever needing it myself. I've always had a good idea of where I branched off from last, or I can ask with "gitk --all" otherwise.

So yes, I'll shamefully admit that I've never used this feature of git and in my very quick (and sleepy) evaluation of it, it seems quite limiting...

-- 
Eric Wong
Previous: David KastrupNext: David Kastrup
Message 6 of 7 in “git-svn: update documentation with CAVEATS section”
  1. git-svn: update documentation with CAVEATS sectionEric Wong, Aug 16, 2007
  2. Junio C HamanoAug 22, 2007
  3. David KastrupAug 22, 2007
  4. Eric WongAug 23, 2007
  5. David KastrupAug 23, 2007
  6. Eric WongAug 23, 2007
  7. David KastrupAug 23, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.