From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jerry Zhang <jerry@skydio.com>
Cc: ross@skydio.com, abe@skydio.com, brian.kubisiask@skydio.com,
git@vger.kernel.org
Subject: Re: [PATCH 0/1] git-apply: Allow simultaneous --cached and --3way options
Date: Sat, 3 Apr 2021 12:24:12 +0700 [thread overview]
Message-ID: <0803a702-ae9c-da9a-c168-d534fe2aab58@gmail.com> (raw)
In-Reply-To: <20210403013410.32064-1-jerry@skydio.com>
On 03/04/21 08.34, Jerry Zhang wrote:
> I'm creating a script/tool that will be able to cherry-pick
> multiple commits from a single branch, rebase them onto a
> base commit, and push those references to a remote.
>
> Ex. with a branch like "origin/master -> A -> B -> C"
> The tool will create "master -> A", "master -> B",
> "master -> C" and either make local branches or
> push them to a remote. This can be useful since code
> review tools like github use branches as the basis
> for pull requests.
>
> A key feature here is that the above happens without
> any changes to the user's working directory or cache.
> This is important since those operations will add
> time and generate build churn. We use these steps
> for synthesizing a "cherry-pick" of B to master.
>
> 1. cp .git/index index.temp
> 2. set GIT_INDEX_FILE=index.temp
> 3. git reset master -- . (git read-tree also works here, but is a bit slower)
> 4. git format-patch --full-index B~..B
> 5. git apply --cached B.patch
> 6. git write-tree
> 7. git commit-tree {output of 6} -p master -m "message"
> 8. either `git symbolic-ref` to make a branch or `git push` to remote
>
> I'm looking to improve the git apply step in #5.
> Currently we can't use --cached in combination with
> --3way, which limits some of the usefulness of this method.
> There are many diffs that will block applying a patch
> that a 3 way merge can resolve without conflicts. Even
> in the case where there are real conflicts, performing
> a 3 way merge will allow us to show the user the lines
> where the conflict occurred.
>
> With the above in mind, I've created a small patch that
> implements the behavior I'd like. Rather than disallow
> the cached and 3way flags to be combined, we allow them,
> but write any conflicts directly to the cached file. Since
> we're unable to modify the working directory, it seems
> reasonable in this case to not actually present the user
> with any options to resolve conflicts. Instead, a script
> or tool using this command can diff the temporary cache
> to get the source of the conflict.
>
> Happy to address any feedback. After I address any major
> changes I will add new tests for this path.
>
> All tests passed locally.
>
> Jerry Zhang (1):
> git-apply: Allow simultaneous --cached and --3way options
>
> Documentation/git-apply.txt | 4 +++-
> apply.c | 13 +++++++------
> 2 files changed, 10 insertions(+), 7 deletions(-)
>
I know this patch series only have one patch, so why add the
cover letter (PATCH 0/1)? Customarily, single-patch series just
begin with `[PATCH] some title`, then patch message, and actual
diff; all without cover letter.
--
An old man doll... just what I always wanted! - Clara
next prev parent reply other threads:[~2021-04-03 5:25 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-03 1:34 [PATCH 0/1] git-apply: Allow simultaneous --cached and --3way options Jerry Zhang
2021-04-03 1:34 ` [PATCH 1/1] " Jerry Zhang
2021-04-03 3:46 ` Elijah Newren
2021-04-03 4:26 ` Junio C Hamano
2021-04-04 1:02 ` Junio C Hamano
2021-04-05 22:12 ` Jerry Zhang
2021-04-05 22:23 ` Junio C Hamano
2021-04-05 23:29 ` Jerry Zhang
2021-04-06 0:10 ` Junio C Hamano
2021-04-05 22:08 ` Jerry Zhang
2021-04-05 22:19 ` [PATCH V2] " Jerry Zhang
2021-04-05 22:46 ` Junio C Hamano
2021-04-06 2:52 ` Jerry Zhang
2021-04-06 5:52 ` Junio C Hamano
2021-04-06 21:56 ` Jerry Zhang
2021-04-07 2:25 ` Jerry Zhang
2021-04-06 2:49 ` [PATCH v3] git-apply: allow " Jerry Zhang
2021-04-07 18:03 ` [PATCH v4] " Jerry Zhang
2021-04-07 19:00 ` Junio C Hamano
2021-04-08 2:13 ` [PATCH v5] " Jerry Zhang
2021-04-08 13:33 ` Junio C Hamano
2021-04-12 15:45 ` Elijah Newren
2021-04-12 18:26 ` Junio C Hamano
2021-04-12 15:40 ` Elijah Newren
2021-04-12 18:27 ` Junio C Hamano
2021-04-03 3:04 ` [PATCH 0/1] git-apply: Allow " Elijah Newren
2021-04-05 22:05 ` Jerry Zhang
2021-04-03 5:24 ` Bagas Sanjaya [this message]
[not found] ` <CAMKO5CtiW84E4XjnPRf-yOPp+ua_u07LsAu=BB0YhmP3+3kYiw@mail.gmail.com>
2021-04-03 8:05 ` Bagas Sanjaya
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=0803a702-ae9c-da9a-c168-d534fe2aab58@gmail.com \
--to=bagasdotme@gmail.com \
--cc=abe@skydio.com \
--cc=brian.kubisiask@skydio.com \
--cc=git@vger.kernel.org \
--cc=jerry@skydio.com \
--cc=ross@skydio.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).