threads / patch / 21634

patchDocument git-svn's first-parent rule

Subject: [PATCH] Document git-svn's first-parent rule

## tl;dr

5 messages between Nov 16, 2009 and Nov 17, 2009. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Thomas Rast· Nov 16, 2009, 10:15 UTC · lore

git-svn has the following rule to detect the SVN base for its operations: find the first git-svn-id line reachable through first-parent ancestry. IOW,

  git log --grep=^git-svn-id: --first-parent -1
Document this, as it is very important when using merges with git-svn.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
---
 Documentation/git-svn.txt |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
Show changes to Documentation/git-svn.txt +10 −0
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 1812890..6da4151 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -735,6 +735,16 @@ merges you've made.  Furthermore, if you merge or pull from a git branch
 that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
 branch.
 
+If you do merge, note the following rule: 'git svn dcommit' will
+attempt to commit on top of the SVN commit named in
+------------------------------------------------------------------------
+git log --grep=^git-svn-id: --first-parent -1
+------------------------------------------------------------------------
+You 'must' therefore ensure that the most recent commit of the branch
+you want to dcommit to is the 'first' parent of the merge.  Chaos will
+ensue otherwise, especially if the first parent is an older commit on
+the same SVN branch.
+
 'git clone' does not clone branches under the refs/remotes/ hierarchy or
 any 'git svn' metadata, or config.  So repositories created and managed with
 using 'git svn' should use 'rsync' for cloning, if cloning is to be done
-- 
1.6.5.2.427.ge73cb
Eric Wong· Nov 16, 2009, 23:14 UTC · re: Thomas Rast · lore

Re: [PATCH] Document git-svn's first-parent rule

Thomas Rast <trast@student.ethz.ch> wrote:
Show 9 quoted lines
> git-svn has the following rule to detect the SVN base for its
> operations: find the first git-svn-id line reachable through
> first-parent ancestry.  IOW,
> 
>   git log --grep=^git-svn-id: --first-parent -1
> 
> Document this, as it is very important when using merges with git-svn.
> 
> Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Thanks Thomas,
Acked-by: Eric Wong <normalperson@yhbt.net>
Show 26 quoted lines
> ---
>  Documentation/git-svn.txt |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 1812890..6da4151 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -735,6 +735,16 @@ merges you've made.  Furthermore, if you merge or pull from a git branch
>  that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
>  branch.
>  
> +If you do merge, note the following rule: 'git svn dcommit' will
> +attempt to commit on top of the SVN commit named in
> +------------------------------------------------------------------------
> +git log --grep=^git-svn-id: --first-parent -1
> +------------------------------------------------------------------------
> +You 'must' therefore ensure that the most recent commit of the branch
> +you want to dcommit to is the 'first' parent of the merge.  Chaos will
> +ensue otherwise, especially if the first parent is an older commit on
> +the same SVN branch.
> +
>  'git clone' does not clone branches under the refs/remotes/ hierarchy or
>  any 'git svn' metadata, or config.  So repositories created and managed with
>  using 'git svn' should use 'rsync' for cloning, if cloning is to be done
> -- 
Junio C Hamano· Nov 17, 2009, 06:25 UTC · re: Eric Wong · lore

Re: [PATCH] Document git-svn's first-parent rule

Eric Wong <normalperson@yhbt.net> writes:
Show 14 quoted lines
> Thomas Rast <trast@student.ethz.ch> wrote:
>> git-svn has the following rule to detect the SVN base for its
>> operations: find the first git-svn-id line reachable through
>> first-parent ancestry.  IOW,
>> 
>>   git log --grep=^git-svn-id: --first-parent -1
>> 
>> Document this, as it is very important when using merges with git-svn.
>> 
>> Signed-off-by: Thomas Rast <trast@student.ethz.ch>
>
> Thanks Thomas,
>
> Acked-by: Eric Wong <normalperson@yhbt.net>

Thanks; is it a good time to pull from your bogomips repository to get accumulated changes?

Eric Wong· Nov 17, 2009, 07:42 UTC · re: Junio C Hamano · lore

Re: [PATCH] Document git-svn's first-parent rule

Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> Eric Wong <normalperson@yhbt.net> writes:
> 
> > Thomas Rast <trast@student.ethz.ch> wrote:
> >> git-svn has the following rule to detect the SVN base for its
> >> operations: find the first git-svn-id line reachable through
> >> first-parent ancestry.  IOW,
> >> 
> >>   git log --grep=^git-svn-id: --first-parent -1
> >> 
> >> Document this, as it is very important when using merges with git-svn.
> >> 
> >> Signed-off-by: Thomas Rast <trast@student.ethz.ch>
> >
> > Thanks Thomas,
> >
> > Acked-by: Eric Wong <normalperson@yhbt.net>
> 
> Thanks; is it a good time to pull from your bogomips repository to get
> accumulated changes?
Now is, I just pushed to it:
Eric Wong (3):
      git svn: read global+system config for clone+init
      git svn: add authorsfile test case for ~/.gitconfig
      git svn: attempt to create empty dirs on clone+rebase
Thomas Rast (1):
      Document git-svn's first-parent rule
Toby Allsopp (1):
      git svn: handle SVN merges from revisions past the tip of the branch
HEAD=ce45a45f24cc7b3ccc7f6ebcd0025559b4421bda
-- 
Eric Wong
Junio C Hamano· Nov 17, 2009, 18:25 UTC · re: Eric Wong · lore

Re: [PATCH] Document git-svn's first-parent rule

Eric Wong <normalperson@yhbt.net> writes:
Show 17 quoted lines
>> Thanks; is it a good time to pull from your bogomips repository to get
>> accumulated changes?
>
> Now is, I just pushed to it:
>
> Eric Wong (3):
>       git svn: read global+system config for clone+init
>       git svn: add authorsfile test case for ~/.gitconfig
>       git svn: attempt to create empty dirs on clone+rebase
>
> Thomas Rast (1):
>       Document git-svn's first-parent rule
>
> Toby Allsopp (1):
>       git svn: handle SVN merges from revisions past the tip of the branch
>
> HEAD=ce45a45f24cc7b3ccc7f6ebcd0025559b4421bda
Thanks, pulled.

← back to recent threads