git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* RE: [PATCH] git-svn: support rebase --preserve-merges
@ 2012-05-15 12:09 Avishay Lavie
  2012-05-22 17:32 ` Steven Walter
  0 siblings, 1 reply; 2+ messages in thread
From: Avishay Lavie @ 2012-05-15 12:09 UTC (permalink / raw)
  To: Eric Wong, avarab, Steven Walter, git

(Adding previous authors of git-svn.perl)

---------- Forwarded message ----------
From: Avishay Lavie <avishay.lavie@gmail.com>
Date: Tue, May 15, 2012 at 12:09 PM
Subject: PATCH: git-svn: support rebase --preserve-merges
To: git@vger.kernel.org


From: Avishay Lavie <avishay.lavie@gmail.com>
Date: Tue, 15 May 2012 11:45:50 +0300
Subject: [PATCH] git-svn: support rebase --preserve-merges

When git svn rebase is performed after an unpushed merge, the
rebase operation follows both parents and replays both the user's
local commits and those from the merged branch. This is usually
not the intended behavior.
This patch adds support for the --preserve-merges/-p flag which
allows for a better workflow by re-applying merge commits as merges.

Signed-off-by: Avishay Lavie <avishay.lavie@gmail.com>
---
 Documentation/git-svn.txt |    2 ++
 git-svn.perl              |    4 +++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 34ee785..0d52997 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -572,6 +572,8 @@ config key: svn.repackflags
 --merge::
 -s<strategy>::
 --strategy=<strategy>::
+-p::
+--preserve-merges::
       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 ca038ec..e86d60b 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -84,7 +84,7 @@ my ($_stdin, $_help, $_edit,
       $_message, $_file, $_branch_dest,
       $_template, $_shared,
       $_version, $_fetch_all, $_no_rebase, $_fetch_parent,
-       $_merge, $_strategy, $_dry_run, $_local,
+       $_merge, $_strategy, $_preserve_merges, $_dry_run, $_local,
       $_prefix, $_no_checkout, $_url, $_verbose,
       $_git_format, $_commit_url, $_tag, $_merge_info, $_interactive);
 $Git::SVN::_follow_parent = 1;
@@ -233,6 +233,7 @@ my %cmd = (
                         'local|l' => \$_local,
                         'fetch-all|all' => \$_fetch_all,
                         'dry-run|n' => \$_dry_run,
+                         'preserve-merges|p' => \$_preserve_merges
                         %fc_opts } ],
       'commit-diff' => [ \&cmd_commit_diff,
                          'Commit a diff between two trees',
@@ -1570,6 +1571,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;
       @cmd;
 }

--
1.7.9.msysgit.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] git-svn: support rebase --preserve-merges
  2012-05-15 12:09 [PATCH] git-svn: support rebase --preserve-merges Avishay Lavie
@ 2012-05-22 17:32 ` Steven Walter
  0 siblings, 0 replies; 2+ messages in thread
From: Steven Walter @ 2012-05-22 17:32 UTC (permalink / raw)
  To: Avishay Lavie; +Cc: Eric Wong, avarab, git

Signed-Off-By: Steven Walter <stevenrwalter@gmail.com>

On Tue, May 15, 2012 at 8:09 AM, Avishay Lavie <avishay.lavie@gmail.com> wrote:
> (Adding previous authors of git-svn.perl)
>
> ---------- Forwarded message ----------
> From: Avishay Lavie <avishay.lavie@gmail.com>
> Date: Tue, May 15, 2012 at 12:09 PM
> Subject: PATCH: git-svn: support rebase --preserve-merges
> To: git@vger.kernel.org
>
>
> From: Avishay Lavie <avishay.lavie@gmail.com>
> Date: Tue, 15 May 2012 11:45:50 +0300
> Subject: [PATCH] git-svn: support rebase --preserve-merges
>
> When git svn rebase is performed after an unpushed merge, the
> rebase operation follows both parents and replays both the user's
> local commits and those from the merged branch. This is usually
> not the intended behavior.
> This patch adds support for the --preserve-merges/-p flag which
> allows for a better workflow by re-applying merge commits as merges.
>
> Signed-off-by: Avishay Lavie <avishay.lavie@gmail.com>
> ---
>  Documentation/git-svn.txt |    2 ++
>  git-svn.perl              |    4 +++-
>  2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 34ee785..0d52997 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -572,6 +572,8 @@ config key: svn.repackflags
>  --merge::
>  -s<strategy>::
>  --strategy=<strategy>::
> +-p::
> +--preserve-merges::
>        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 ca038ec..e86d60b 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -84,7 +84,7 @@ my ($_stdin, $_help, $_edit,
>        $_message, $_file, $_branch_dest,
>        $_template, $_shared,
>        $_version, $_fetch_all, $_no_rebase, $_fetch_parent,
> -       $_merge, $_strategy, $_dry_run, $_local,
> +       $_merge, $_strategy, $_preserve_merges, $_dry_run, $_local,
>        $_prefix, $_no_checkout, $_url, $_verbose,
>        $_git_format, $_commit_url, $_tag, $_merge_info, $_interactive);
>  $Git::SVN::_follow_parent = 1;
> @@ -233,6 +233,7 @@ my %cmd = (
>                          'local|l' => \$_local,
>                          'fetch-all|all' => \$_fetch_all,
>                          'dry-run|n' => \$_dry_run,
> +                         'preserve-merges|p' => \$_preserve_merges
>                          %fc_opts } ],
>        'commit-diff' => [ \&cmd_commit_diff,
>                           'Commit a diff between two trees',
> @@ -1570,6 +1571,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;
>        @cmd;
>  }
>
> --
> 1.7.9.msysgit.0



-- 
-Steven Walter <stevenrwalter@gmail.com>
"The rotter who simpers that he sees no difference between the power
of the dollar and the power of the whip, ought to learn the difference
on his own hide."
    -Francisco d'Anconia, Atlas Shrugged

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-05-22 17:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-15 12:09 [PATCH] git-svn: support rebase --preserve-merges Avishay Lavie
2012-05-22 17:32 ` Steven Walter

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).