From: Luke Diamand <luke@diamand.org>
To: Pete Wyckoff <pw@padd.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 00/12] git p4: submit conflict handling
Date: Fri, 17 Aug 2012 07:04:37 +0100 [thread overview]
Message-ID: <502DDEF5.4090405@diamand.org> (raw)
In-Reply-To: <1345160114-27654-1-git-send-email-pw@padd.com>
On 17/08/12 00:35, Pete Wyckoff wrote:
> These patches rework how git p4 deals with conflicts that
> arise during a "git p4 submit". These may arise due to
> changes that happened in p4 since the last "git p4 sync".
>
> Luke: I especially wanted to get this out as you suggested
> that you had a different way of dealing with skipped commits.
>
> The part that needs the most attention is the interaction
> loop that happens when a commit failed. Currently, three
> options are offered:
>
> [s]kip this commit, but continue to apply others
> [a]pply the commit forcefully, generating .rej files
> [w]rite the commit to a patch.txt file
> and the implicit<ctrl-c> to stop
>
> After this series, it offers two:
>
> [c]ontinue to apply others
> [q]uit to stop
>
> This feels more natural to me, and I like the term "continue" rather
> than "skip" as it matches what rebase uses. I'd like to know what
> others think of the new flow.
The skip is still needed. In my workflow, git-p4 gets run periodically
and does the usual sync+rebase on behalf of all the people who have
pushed to the git repo.
If someone pushes a change which conflicts with something from Perforce
land, then what I want to happen is for the script to discard the
offending commit (git rebase --skip) and then carry on with the others.
In 99% of cases this does exactly what I need, as conflicting commits
are usually caused by people committing the same fix to both p4 and git
at around the same time (someone breaks top-of-tree with an obvious
error, two separate people check in slightly different fixes).
Discarding the git commit then means that everything carries on working.
I've got a small patch which makes skipping work non-interactively; the
thing it's missing is reporting the commits which are skipped.
>
> Other observable changes are new command-line options:
>
> Alias -v for --verbose, similar to other git commands.
>
> The --dry-run option addresses Luke's concern in
>
> http://thread.gmane.org/gmane.comp.version-control.git/201004/focus=201022
>
> when I removed an unused "self.interactive" variable
> that did a similar thing if you edited the code. It prints
> commits that would be applied to p4.
>
> Option --prepare-p4-only is similar to --dry-run, in that
> it does not submit anything to p4, but it does prepare the
> p4 workspace, then prints long instructions about how to submit
> everything properly. It also serves, perhaps, as a replacement for
> the [a]pply option in the submit-conflict loop.
>
> Pete Wyckoff (12):
> git p4 test: remove bash-ism of combined export/assignment
> git p4 test: use p4d -L option to suppress log messages
> git p4: gracefully fail if some commits could not be applied
> git p4: remove submit failure options [a]pply and [w]rite
> git p4: move conflict prompt into run, use [c]ontinue and [q]uit
> git p4: standardize submit cancel due to unchanged template
> git p4: test clean-up after failed submit, fix added files
> git p4: rearrange submit template construction
> git p4: revert deleted files after submit cancel
> git p4: accept -v for --verbose
> git p4: add submit --dry-run option
> git p4: add submit --prepare-p4-only option
>
> Documentation/git-p4.txt | 13 +-
> git-p4.py | 213 +++++++++++++++------
> t/lib-git-p4.sh | 10 +-
> t/t9805-git-p4-skip-submit-edit.sh | 2 +-
> t/t9807-git-p4-submit.sh | 65 +++++++
> t/t9810-git-p4-rcs.sh | 50 +----
> t/t9815-git-p4-submit-fail.sh | 367 +++++++++++++++++++++++++++++++++++++
> 7 files changed, 612 insertions(+), 108 deletions(-)
> create mode 100755 t/t9815-git-p4-submit-fail.sh
>
next prev parent reply other threads:[~2012-08-17 6:05 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-16 23:35 [PATCH 00/12] git p4: submit conflict handling Pete Wyckoff
2012-08-16 23:35 ` [PATCH 01/12] git p4 test: remove bash-ism of combined export/assignment Pete Wyckoff
2012-08-17 3:08 ` Junio C Hamano
2012-08-16 23:35 ` [PATCH 02/12] git p4 test: use p4d -L option to suppress log messages Pete Wyckoff
2012-08-17 6:07 ` Luke Diamand
2012-08-16 23:35 ` [PATCH 03/12] git p4: gracefully fail if some commits could not be applied Pete Wyckoff
2012-08-17 6:53 ` Johannes Sixt
2012-08-17 11:49 ` Pete Wyckoff
2012-08-17 7:21 ` Luke Diamand
2012-08-17 11:58 ` Pete Wyckoff
2012-08-16 23:35 ` [PATCH 04/12] git p4: remove submit failure options [a]pply and [w]rite Pete Wyckoff
2012-08-16 23:35 ` [PATCH 05/12] git p4: move conflict prompt into run, use [c]ontinue and [q]uit Pete Wyckoff
2012-08-16 23:35 ` [PATCH 06/12] git p4: standardize submit cancel due to unchanged template Pete Wyckoff
2012-08-16 23:35 ` [PATCH 07/12] git p4: test clean-up after failed submit, fix added files Pete Wyckoff
2012-08-16 23:35 ` [PATCH 08/12] git p4: rearrange submit template construction Pete Wyckoff
2012-08-16 23:35 ` [PATCH 09/12] git p4: revert deleted files after submit cancel Pete Wyckoff
2012-08-16 23:35 ` [PATCH 10/12] git p4: accept -v for --verbose Pete Wyckoff
2012-08-16 23:35 ` [PATCH 11/12] git p4: add submit --dry-run option Pete Wyckoff
2012-08-16 23:35 ` [PATCH 12/12] git p4: add submit --prepare-p4-only option Pete Wyckoff
2012-08-17 6:04 ` Luke Diamand [this message]
2012-08-17 12:21 ` [PATCH 00/12] git p4: submit conflict handling Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=502DDEF5.4090405@diamand.org \
--to=luke@diamand.org \
--cc=git@vger.kernel.org \
--cc=pw@padd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).