Skip to contentSkip to conversation

git svn: use rebase --rebase-merges instead of preserve-merges

PATCH In review Johannes Schindelin via GitGitGadget 2 participants 3 messages Nov 22, 2019 – Nov 23, 2019 Documentation

lore
Share & tools
lore
#0 lore raw

cover git svn: use rebase --rebase-merges instead of preserve-merges

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

Signature · 1 line
gitgitgadget
#1 lore raw

PATCH 1/1 git svn: stop using `rebase --preserve-merges`

From: Johannes Schindelin <[email protected]>

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.

---
 Documentation/git-svn.txt | 3 ++-
 git-svn.perl              | 9 +++++----
 2 files changed, 7 insertions(+), 5 deletions(-)
Documentation/git-svn.txt +2 -1
index 53774f5b64..6624a14fbd 100644
@@ -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
git-svn.perl +5 -4
index 050f2a36f4..4aa208ff5f 100755
@@ -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;
 }
 
Signature · 1 line
gitgitgadget
Acked-by on v1 1/1
#2 lore raw

Re: [PATCH 1/1] git svn: stop using `rebase --preserve-merges`

Quoted 10 lines · Johannes Schindelin via GitGitGadget

From: Johannes Schindelin <[email protected]>

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...

Quoted 1 line

Thanks.