# [PATCH 0/1] git svn: use rebase --rebase-merges instead of preserve-merges

3 messages from 2019-11-22 to 2019-11-23. Participants: Johannes Schindelin via GitGitGadget, Eric Wong.
Thread: https://gitlist.dev/t/52318

## Johannes Schindelin via GitGitGadget, 2019-11-22 22:59

Subject: [PATCH 0/1] git svn: use rebase --rebase-merges instead of preserve-merges
Message-ID: <pull.295.git.1574463569.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.295.git.1574463569.gitgitgadget%40gmail.com

```
By now, git rebase -r is on par with git rebase -p (or better), at least as
far as git svn's usage is concerned. So let's use the former instead of the
(deprecated) latter option.

Johannes Schindelin (1):
  git svn: stop using `rebase --preserve-merges`

 Documentation/git-svn.txt | 3 ++-
 git-svn.perl              | 9 +++++----
 2 files changed, 7 insertions(+), 5 deletions(-)


base-commit: d9f6f3b6195a0ca35642561e530798ad1469bd41
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-295%2Fdscho%2Fuse-rebase-r-in-git-svn-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-295/dscho/use-rebase-r-in-git-svn-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/295
-- 
gitgitgadget

```

## Johannes Schindelin via GitGitGadget, 2019-11-22 22:59

Subject: [PATCH 1/1] git svn: stop using `rebase --preserve-merges`
Message-ID: <c123d93ae7361b53b9d1d76124aefcb09740f0eb.1574463569.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/c123d93ae7361b53b9d1d76124aefcb09740f0eb.1574463569.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.295.git.1574463569.gitgitgadget@gmail.com>

```
From: Johannes Schindelin <johannes.schindelin@gmx.de>

We deprecated `--preserve-merges` in favor of `--rebase-merges`; Let's
reflect that in `git svn`.

Note: Even when the user asks for `--preserve-merges`, we now silently
pass `--rebase-merges` to `git rebase` instead. Technically, this is a
change of behavior. But practically, `git svn` only ever asks for a
non-interactive rebase, and `--preserve-merges` and `--rebase-merges`
are on par with regard to that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 Documentation/git-svn.txt | 3 ++-
 git-svn.perl              | 9 +++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 53774f5b64..6624a14fbd 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -677,7 +677,8 @@ config key: svn.authorsProg
 -s<strategy>::
 --strategy=<strategy>::
 -p::
---preserve-merges::
+--rebase-merges::
+--preserve-merges (DEPRECATED)::
 	These are only used with the 'dcommit' and 'rebase' commands.
 +
 Passed directly to 'git rebase' when using 'dcommit' if a
diff --git a/git-svn.perl b/git-svn.perl
index 050f2a36f4..4aa208ff5f 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -110,7 +110,7 @@ sub _req_svn {
 	$_template, $_shared,
 	$_version, $_fetch_all, $_no_rebase, $_fetch_parent,
 	$_before, $_after,
-	$_merge, $_strategy, $_preserve_merges, $_dry_run, $_parents, $_local,
+	$_merge, $_strategy, $_rebase_merges, $_dry_run, $_parents, $_local,
 	$_prefix, $_no_checkout, $_url, $_verbose,
 	$_commit_url, $_tag, $_merge_info, $_interactive, $_set_svn_props);
 
@@ -270,7 +270,8 @@ sub _req_svn {
 			  'local|l' => \$_local,
 			  'fetch-all|all' => \$_fetch_all,
 			  'dry-run|n' => \$_dry_run,
-			  'preserve-merges|p' => \$_preserve_merges,
+			  'rebase-merges|p' => \$_rebase_merges,
+			  'preserve-merges|p' => \$_rebase_merges,
 			  %fc_opts } ],
 	'commit-diff' => [ \&cmd_commit_diff,
 	                   'Commit a diff between two trees',
@@ -1054,7 +1055,7 @@ sub cmd_dcommit {
 					  'If you are attempting to commit ',
 					  "merges, try running:\n\t",
 					  'git rebase --interactive',
-					  '--preserve-merges ',
+					  '--rebase-merges ',
 					  $gs->refname,
 					  "\nBefore dcommitting";
 				}
@@ -1717,7 +1718,7 @@ sub rebase_cmd {
 	push @cmd, '-v' if $_verbose;
 	push @cmd, qw/--merge/ if $_merge;
 	push @cmd, "--strategy=$_strategy" if $_strategy;
-	push @cmd, "--preserve-merges" if $_preserve_merges;
+	push @cmd, "--rebase-merges" if $_rebase_merges;
 	@cmd;
 }
 
-- 
gitgitgadget

```

## Eric Wong, 2019-11-23 00:08

Subject: Re: [PATCH 1/1] git svn: stop using `rebase --preserve-merges`
Message-ID: <20191123000828.GA15493@dcvr>
URL: https://gitlist.dev/e/20191123000828.GA15493%40dcvr
In-Reply-To: <c123d93ae7361b53b9d1d76124aefcb09740f0eb.1574463569.git.gitgitgadget@gmail.com>

```
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com> wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> We deprecated `--preserve-merges` in favor of `--rebase-merges`; Let's
> reflect that in `git svn`.
> 
> Note: Even when the user asks for `--preserve-merges`, we now silently
> pass `--rebase-merges` to `git rebase` instead. Technically, this is a
> change of behavior. But practically, `git svn` only ever asks for a
> non-interactive rebase, and `--preserve-merges` and `--rebase-merges`
> are on par with regard to that.

I've never used --preserve-merges or --rebase-merges even with
standalone git; but this seems fine as there's no actual
behavior change...

> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Acked-by: Eric Wong <e@80x24.org>

Thanks.

```
