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

From: "Randall S. Becker" <[email-masked]>
Date: Thu, 18 Jan 2018 14:17:19 -0500

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.