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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.