|
84 | 84 | $_version, $_fetch_all, $_no_rebase, $_fetch_parent, |
85 | 85 | $_merge, $_strategy, $_dry_run, $_local, |
86 | 86 | $_prefix, $_no_checkout, $_url, $_verbose, |
87 | | - $_git_format, $_commit_url, $_tag); |
| 87 | + $_git_format, $_commit_url, $_tag, $_merge_info); |
88 | 88 | $Git::SVN::_follow_parent = 1; |
89 | 89 | $_q ||= 0; |
90 | 90 | my %remote_opts = ( 'username=s' => \$Git::SVN::Prompt::_username, |
@@ -154,6 +154,7 @@ BEGIN |
154 | 154 | 'commit-url=s' => \$_commit_url, |
155 | 155 | 'revision|r=i' => \$_revision, |
156 | 156 | 'no-rebase' => \$_no_rebase, |
| 157 | + 'mergeinfo=s' => \$_merge_info, |
157 | 158 | %cmt_opts, %fc_opts } ], |
158 | 159 | branch => [ \&cmd_branch, |
159 | 160 | 'Create a branch in the SVN repository', |
@@ -569,6 +570,7 @@ sub cmd_dcommit { |
569 | 570 | print "Committed r$_[0]\n"; |
570 | 571 | $cmt_rev = $_[0]; |
571 | 572 | }, |
| 573 | + mergeinfo => $_merge_info, |
572 | 574 | svn_path => ''); |
573 | 575 | if (!SVN::Git::Editor->new(\%ed_opts)->apply_diff) { |
574 | 576 | print "No changes\n$d~1 == $d\n"; |
@@ -4451,6 +4453,7 @@ sub new { |
4451 | 4453 | $self->{path_prefix} = length $self->{svn_path} ? |
4452 | 4454 | "$self->{svn_path}/" : ''; |
4453 | 4455 | $self->{config} = $opts->{config}; |
| 4456 | + $self->{mergeinfo} = $opts->{mergeinfo}; |
4454 | 4457 | return $self; |
4455 | 4458 | } |
4456 | 4459 |
|
@@ -4760,6 +4763,11 @@ sub change_file_prop { |
4760 | 4763 | $self->SUPER::change_file_prop($fbat, $pname, $pval, $self->{pool}); |
4761 | 4764 | } |
4762 | 4765 |
|
| 4766 | +sub change_dir_prop { |
| 4767 | + my ($self, $pbat, $pname, $pval) = @_; |
| 4768 | + $self->SUPER::change_dir_prop($pbat, $pname, $pval, $self->{pool}); |
| 4769 | +} |
| 4770 | + |
4763 | 4771 | sub _chg_file_get_blob ($$$$) { |
4764 | 4772 | my ($self, $fbat, $m, $which) = @_; |
4765 | 4773 | my $fh = $::_repository->temp_acquire("git_blob_$which"); |
@@ -4853,6 +4861,11 @@ sub apply_diff { |
4853 | 4861 | fatal("Invalid change type: $f"); |
4854 | 4862 | } |
4855 | 4863 | } |
| 4864 | + |
| 4865 | + if (defined($self->{mergeinfo})) { |
| 4866 | + $self->change_dir_prop($self->{bat}{''}, "svn:mergeinfo", |
| 4867 | + $self->{mergeinfo}); |
| 4868 | + } |
4856 | 4869 | $self->rmdirs if $_rmdir; |
4857 | 4870 | if (@$mods == 0) { |
4858 | 4871 | $self->abort_edit; |
|
0 commit comments