threads / discuss / 47636

[Question] format-patch along a specific path

Subject: [Question] format-patch along a specific path

## tl;dr

2 messages between Jan 18, 2018 and Jan 18, 2018.

replies: 1people: 1as markdown or json

Randall S. Becker· Jan 18, 2018, 19:17 UTC · lore
Hi all,

What I’m trying to do is to format a patch based on a single commit from 2.16.0 representing the NonStop port, for review and comments to the team. Here is a partial (somewhat familiar) tree:

*   f1a482cd8 (HEAD -> randall_2.16, ituglib_release) NonStop port changes
for git 2.16.0.
|\
| | * b2a06dcfb (refs/stash) WIP on randall: 5653e94 Removed unnecessary
void* from hashmap.h that caused compile warnings
| |/
| * 5653e943a (randall) Removed unnecessary void* from hashmap.h that caused
compile warnings
| *   b318de9ca Merge branch 'ituglib_devel' into 2.16.0-rc1
| |\
| | * a4cdf025d (randall_2.13.5) Replaced read with xread in
transport-helper.c to fix SSIZE_MAX overun in t5509
| | | * b72dbd7fa (origin/pu) Merge branch 'ds/use-get-be64' into pu
| |_|/
|/| |
| | | * 896df04e4 (origin/next) Sync with 2.16
| |_|/
|/| |
* | | 2512f1544 (tag: v2.16.0, origin/master, origin/HEAD) Git 2.16
|/ /
* | c6c75c93a (tag: v2.16.0-rc2) Git 2.16-rc2

Trying the intuitive approach of git format-patch -1 f1a482cd8, I end up with a patch for c6c75c93a, which I assume is a backtrack. If I use 2512f1544..f1a482cd8, I end up with a whole bunch of commits along the long path rather than the short single hop path, (I actually want the short path). The --base=2512f1544 option complains that the base commit shouldn't be in revision list, which I also assume is an artifact of backtracking. Is there a clean way in 2.16.0 to do this or should I redo the commit as a squash and disconnect it from the other path?

Cheers, Randall

-- Brief whoami:
  NonStop developer since approximately NonStop(211288444200000000)
 UNIX developer since approximately 421664400
-- In my real life, I talk too much.
Randall S. Becker· Jan 18, 2018, 22:38 UTC · re: Randall S. Becker · lore

RE: [Question] format-patch along a specific path

On January 18, 2018 2:17 PM, I wrote:
Show 28 quoted lines
> What I’m trying to do is to format a patch based on a single commit from
> 2.16.0 representing the NonStop port, for review and comments to the team.
> Here is a partial (somewhat familiar) tree:
> 
> *   f1a482cd8 (HEAD -> randall_2.16, ituglib_release) NonStop port changes
> for git 2.16.0.
> |\
> | | * b2a06dcfb (refs/stash) WIP on randall: 5653e94 Removed unnecessary
> void* from hashmap.h that caused compile warnings
> | |/
> | * 5653e943a (randall) Removed unnecessary void* from hashmap.h that
> | caused
> compile warnings
> | *   b318de9ca Merge branch 'ituglib_devel' into 2.16.0-rc1
> | |\
> | | * a4cdf025d (randall_2.13.5) Replaced read with xread in
> transport-helper.c to fix SSIZE_MAX overun in t5509
> | | | * b72dbd7fa (origin/pu) Merge branch 'ds/use-get-be64' into pu
> | |_|/
> |/| |
> | | | * 896df04e4 (origin/next) Sync with 2.16
> | |_|/
> |/| |
> * | | 2512f1544 (tag: v2.16.0, origin/master, origin/HEAD) Git 2.16
> |/ /
> * | c6c75c93a (tag: v2.16.0-rc2) Git 2.16-rc2
> 
> Trying the intuitive approach of git format-patch -1 f1a482cd8, I end up
with
> a patch for c6c75c93a, which I assume is a backtrack. If I use
> 2512f1544..f1a482cd8, I end up with a whole bunch of commits along the
> long path rather than the short single hop path, (I actually want the
short
> path). The --base=2512f1544 option complains that the base commit
> shouldn't be in revision list, which I also assume is an artifact of
backtracking.
> Is there a clean way in 2.16.0 to do this or should I redo the commit as a
> squash and disconnect it from the other path?

I decided to go down the squash route figuring that the eventual fix will have to be squashed anyway. The RFC patch will follow.

I'm still curious how to do this, and if it's not possible, perhaps we need a --via:commit-ish option to format-patch to force a path.

Cheers, Randall

-- Brief whoami:
  NonStop developer since approximately NonStop(211288444200000000)
  UNIX developer since approximately 421664400
-- In my real life, I talk too much.

← back to recent threads