# [PATCH] In partial SVN merges, the ranges contains additional character "*"

3 messages from 2013-03-06 to 2013-03-07. Participants: Jan Pešta, Junio C Hamano, Eric Wong.
Thread: https://gitlist.dev/t/33090

## Jan Pešta, 2013-03-06 21:35

Subject: [PATCH] In partial SVN merges, the ranges contains additional character "*"
Message-ID: <000001ce1ab2$903fbc40$b0bf34c0$@certicon.cz>
URL: https://gitlist.dev/e/000001ce1ab2%24903fbc40%24b0bf34c0%24%40certicon.cz

```
See http://www.open.collab.net/community/subversion/articles/merge-info.html
Extract:
The range r30430:30435 that was added to 1.5.x in this merge has a '*'
suffix for 1.5.x\www.
This '*' is the marker for a non-inheritable mergeinfo range.
The '*' means that only the path on which the mergeinfo is explicitly set
has had this range merged into it.

Signed-off-by: Jan Pesta <jan.pesta@certicon.cz>
---
 perl/Git/SVN.pm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index 0ebc68a..74d49bb 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -1493,6 +1493,11 @@ sub lookup_svn_merge {
 	my @merged_commit_ranges;
 	# find the tip
 	for my $range ( @ranges ) {
+		if ($range =~ /[*]$/) {
+			warn "W:Ignoring partial merge in svn:mergeinfo "
+				."dirprop: $source:$range\n";
+			next;
+		}
 		my ($bottom, $top) = split "-", $range;
 		$top ||= $bottom;
 		my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top );
-- 
1.8.1.msysgit.1

```

## Junio C Hamano, 2013-03-07 00:04

Subject: Re: [PATCH] In partial SVN merges, the ranges contains additional character "*"
Message-ID: <7vppzcnkgu.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vppzcnkgu.fsf%40alter.siamese.dyndns.org
In-Reply-To: <000001ce1ab2$903fbc40$b0bf34c0$@certicon.cz>

```
Jan Pešta <jan.pesta@certicon.cz> writes:

> See http://www.open.collab.net/community/subversion/articles/merge-info.html
> Extract:
> The range r30430:30435 that was added to 1.5.x in this merge has a '*'
> suffix for 1.5.x\www.
> This '*' is the marker for a non-inheritable mergeinfo range.
> The '*' means that only the path on which the mergeinfo is explicitly set
> has had this range merged into it.
>
> Signed-off-by: Jan Pesta <jan.pesta@certicon.cz>
> ---
>  perl/Git/SVN.pm | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
> index 0ebc68a..74d49bb 100644
> --- a/perl/Git/SVN.pm
> +++ b/perl/Git/SVN.pm
> @@ -1493,6 +1493,11 @@ sub lookup_svn_merge {
>  	my @merged_commit_ranges;
>  	# find the tip
>  	for my $range ( @ranges ) {
> +		if ($range =~ /[*]$/) {
> +			warn "W:Ignoring partial merge in svn:mergeinfo "
> +				."dirprop: $source:$range\n";
> +			next;
> +		}
>  		my ($bottom, $top) = split "-", $range;
>  		$top ||= $bottom;
>  		my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top );

```

## Eric Wong, 2013-03-07 10:44

Subject: Re: [PATCH] In partial SVN merges, the ranges contains additional character "*"
Message-ID: <20130307104441.GA25337@dcvr.yhbt.net>
URL: https://gitlist.dev/e/20130307104441.GA25337%40dcvr.yhbt.net
In-Reply-To: <000001ce1ab2$903fbc40$b0bf34c0$@certicon.cz>

```
(adding Sam to the Cc:, I rely on him for SVN merge knowledge)

Jan Pešta <jan.pesta@certicon.cz> wrote:
> See http://www.open.collab.net/community/subversion/articles/merge-info.html
> Extract:
> The range r30430:30435 that was added to 1.5.x in this merge has a '*'
> suffix for 1.5.x\www.
> This '*' is the marker for a non-inheritable mergeinfo range.
> The '*' means that only the path on which the mergeinfo is explicitly set
> has had this range merged into it.

Jan: can you write a better commit message to explain what your
patch fixes/changes, and why we do it?

Something like:

  Subject: [PATCH] git svn: ignore partial svn:mergeinfo

  <explain why we ignore partial svn:mergeinfo in the body>

See Documentation/SubmittingPatches for hints.  Thanks!

> Signed-off-by: Jan Pesta <jan.pesta@certicon.cz>
> ---
>  perl/Git/SVN.pm | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
> index 0ebc68a..74d49bb 100644
> --- a/perl/Git/SVN.pm
> +++ b/perl/Git/SVN.pm
> @@ -1493,6 +1493,11 @@ sub lookup_svn_merge {
>  	my @merged_commit_ranges;
>  	# find the tip
>  	for my $range ( @ranges ) {
> +		if ($range =~ /[*]$/) {
> +			warn "W:Ignoring partial merge in svn:mergeinfo "
> +				."dirprop: $source:$range\n";
> +			next;
> +		}
>  		my ($bottom, $top) = split "-", $range;
>  		$top ||= $bottom;
>  		my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top );
> -- 

```
