From 4f67b2e7b9227286b3c3cf173daf0acc29ab56ee Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 10:31:48 -0700 Subject: [PATCH 01/17] commit-patch: Use a local carton libs automatically, for easier development --- commit-patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/commit-patch b/commit-patch index b7bd18f..748cc8d 100755 --- a/commit-patch +++ b/commit-patch @@ -7,6 +7,8 @@ my $VERSION = '2.6'; use strict; use Cwd qw(abs_path); +use File::Basename; +use lib dirname(abs_path($0))."/local/lib/perl5"; use IPC::Run; use File::Temp qw(tempfile); use Getopt::Long; -- 2.51.2 From 9bce5d1ecc39b3f262d616012f7c3b47f2229142 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 10:37:53 -0700 Subject: [PATCH 02/17] It's 2021 --- README | 2 +- commit-patch | 2 +- commit-patch-buffer.el | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README b/README index fab2de6..740e8ab 100644 --- a/README +++ b/README @@ -56,7 +56,7 @@ AUTHORS o Jim Radford COPYRIGHT AND LICENSE - Copyright © 2003-2015 by David Caldwell and Jim Radford. + Copyright © 2003-2021 by David Caldwell and Jim Radford. commit-patch is distributed under the GNU General Public License. See the COPYING file in the distribution for more diff --git a/commit-patch b/commit-patch index 748cc8d..9694117 100755 --- a/commit-patch +++ b/commit-patch @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright © 2003-2015 David Caldwell +# Copyright © 2003-2021 David Caldwell # and Jim Radford # This code can be distributed under the terms of the GNU Public License (Version 2 or greater). diff --git a/commit-patch-buffer.el b/commit-patch-buffer.el index 487e02d..a156cc9 100644 --- a/commit-patch-buffer.el +++ b/commit-patch-buffer.el @@ -1,6 +1,6 @@ ;;; commit-patch-buffer.el --- commit patches to Darcs, Git, Mercurial, Bazaar, Monotone, Subversion, or CVS repositories -;; Copyright 2003-2015 Jim Radford +;; Copyright 2003-2021 Jim Radford ;; and David Caldwell ;; This code can be distributed under the terms of the GNU Public License (Version 2 or greater). ;; -- 2.51.2 From 0cec690e36c3be0f9c668be596f5c2a97b8bc49f Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 10:56:08 -0700 Subject: [PATCH 03/17] README -> README.md (and Markdownify) --- README | 63 ------------------------------------------- README.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 63 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index 740e8ab..0000000 --- a/README +++ /dev/null @@ -1,63 +0,0 @@ -commit-patch - commit patches to Darcs, Git, Mercurial, - Bazaar, Monotone, Subversion, or CVS -------------------------------------------------------- - -PREREQUISITES - commit-patch relies on several programs to get the job done: - - perl - - patch - - interdiff - - cp - Ideally installed on your system already. :-) - and, of course, one of: - darcs - - git - - mercurial - - bazaar - - monotone - - subversion - - cvs - - - On Debian/Ubuntu: - apt-get install libipc-run-perl patch patchutils - - On Fedora: - yum install perl-IPC-Run patch patchutils - - On Mac OS X w/ Homebrew - brew install patchutils - cpan -i IPC::Run - - commit-patch is known to run on Linux and Mac OS X. It is perl, - so ideally it will run anywhere, but we have never tested in - other environments, most notably Windows. Use at your own risk. - -INSTRUCTIONS - commit-patch: See the man page or perldoc: - man ./commit-patch.1 - perldoc commit-patch - - commit-patch-buffer.el is an emacs interface to - commit-patch. It allows you to just hit C-c C-c in any patch - buffer to apply and commit only the changes indicated by the - patch, regardless of the changes in your working directory. - - One method of working with commit-patch-buffer is to just M-x - vc-diff a file then kill, split or edit the resulting hunks and - to then hit C-c C-c to commit the patch. The other is to use - PCL cvs mode to tag many files and then to diff them into a - buffer which can again be edited and committed. - -HOMEPAGE - - -AUTHORS - o David Caldwell - o Jim Radford - -COPYRIGHT AND LICENSE - Copyright © 2003-2021 by David Caldwell and Jim Radford. - - commit-patch is distributed under the GNU General Public - License. See the COPYING file in the distribution for more - details. diff --git a/README.md b/README.md new file mode 100644 index 0000000..78f4965 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +commit-patch +============ + +Commit patches to Darcs, Git, Mercurial, Bazaar, Monotone, Subversion, or CVS + + +Prerequisites +------------- + +commit-patch relies on several programs to get the job done: + +- [perl](http://www.perl.org) +- [patch](http://www.gnu.org/software/patch/) +- [interdiff](http://cyberelk.net/tim/software/patchutils/) +- cp - Ideally installed on your system already. :-) + +and, of course, one of: + +- [darcs](http://darcs.net/) +- [git](http://git.or.cz/) +- [mercurial](http://www.selenic.com/mercurial/) +- [bazaar](http://bazaar-vcs.org/) +- [monotone](http://www.monotone.ca/) +- [subversion](http://subversion.tigris.org/) +- [cvs](http://www.nongnu.org/cvs/) + +## Installing Prerequisites + +On Debian/Ubuntu: + + apt-get install libipc-run-perl patch patchutils + +On Fedora: + + yum install perl-IPC-Run patch patchutils + +On Mac OS X w/ Homebrew + + brew install patchutils + cpan -i IPC::Run + +commit-patch is known to run on Linux and Mac OS X. It is perl, +so ideally it will run anywhere, but we have never tested in +other environments, most notably Windows. Use at your own risk. + +Instructions +------------ + +- commit-patch: See the man page or perldoc: + ``` + man ./commit-patch.1 + perldoc commit-patch + ``` + +- commit-patch-buffer.el is an emacs interface to + commit-patch. It allows you to just hit C-c C-c in any patch + buffer to apply and commit only the changes indicated by the + patch, regardless of the changes in your working directory. + + One method of working with commit-patch-buffer is to just M-x + vc-diff a file then kill, split or edit the resulting hunks and + to then hit C-c C-c to commit the patch. The other is to use + PCL cvs mode to tag many files and then to diff them into a + buffer which can again be edited and committed. + +Homepage +-------- +http://www.porkrind.org/commit-patch/ + +Authors +------- +- David Caldwell +- Jim Radford + +Copyright and License +--------------------- +Copyright © 2003-2021 by David Caldwell and Jim Radford. + +`commit-patch` is distributed under the GNU General Public +License. See the COPYING file in the distribution for more +details. -- 2.51.2 From a43a71fa20904024ce243d9d499309af70d97188 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:06:56 -0700 Subject: [PATCH 04/17] README.md: Update links --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 78f4965..d154135 100644 --- a/README.md +++ b/README.md @@ -9,20 +9,20 @@ Prerequisites commit-patch relies on several programs to get the job done: -- [perl](http://www.perl.org) -- [patch](http://www.gnu.org/software/patch/) +- [perl](https://www.perl.org) +- [patch](https://www.gnu.org/software/patch/) - [interdiff](http://cyberelk.net/tim/software/patchutils/) - cp - Ideally installed on your system already. :-) and, of course, one of: - [darcs](http://darcs.net/) -- [git](http://git.or.cz/) -- [mercurial](http://www.selenic.com/mercurial/) -- [bazaar](http://bazaar-vcs.org/) -- [monotone](http://www.monotone.ca/) +- [git](https://git-scm.com/) +- [mercurial](https://subversion.apache.org/) +- [bazaar](https://bazaar.canonical.com/) +- [monotone](https://www.monotone.ca/) - [subversion](http://subversion.tigris.org/) -- [cvs](http://www.nongnu.org/cvs/) +- [cvs](https://www.nongnu.org/cvs/) ## Installing Prerequisites @@ -34,7 +34,7 @@ On Fedora: yum install perl-IPC-Run patch patchutils -On Mac OS X w/ Homebrew +On Mac OS X w/ [Homebrew](https://brew.sh) brew install patchutils cpan -i IPC::Run @@ -65,7 +65,7 @@ Instructions Homepage -------- -http://www.porkrind.org/commit-patch/ +https://porkrind.org/commit-patch/ Authors ------- -- 2.51.2 From d8de27f80999c772ef5cbb67f8e7d40b51e5b495 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:08:40 -0700 Subject: [PATCH 05/17] README.md: Reorder VCSes based on my 100% totally rational perceptions of their importance. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d154135..193691d 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,13 @@ commit-patch relies on several programs to get the job done: and, of course, one of: -- [darcs](http://darcs.net/) - [git](https://git-scm.com/) - [mercurial](https://subversion.apache.org/) -- [bazaar](https://bazaar.canonical.com/) -- [monotone](https://www.monotone.ca/) +- [darcs](http://darcs.net/) - [subversion](http://subversion.tigris.org/) - [cvs](https://www.nongnu.org/cvs/) +- [bazaar](https://bazaar.canonical.com/) +- [monotone](https://www.monotone.ca/) ## Installing Prerequisites -- 2.51.2 From 25a6fce8dd1795be3a220d361d16f2ae89f4f921 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:43:34 -0700 Subject: [PATCH 06/17] README.md: Revamp instructions, filling out emacs section --- README.md | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 193691d..908ac46 100644 --- a/README.md +++ b/README.md @@ -46,22 +46,33 @@ other environments, most notably Windows. Use at your own risk. Instructions ------------ -- commit-patch: See the man page or perldoc: - ``` - man ./commit-patch.1 - perldoc commit-patch - ``` - -- commit-patch-buffer.el is an emacs interface to - commit-patch. It allows you to just hit C-c C-c in any patch - buffer to apply and commit only the changes indicated by the - patch, regardless of the changes in your working directory. - - One method of working with commit-patch-buffer is to just M-x - vc-diff a file then kill, split or edit the resulting hunks and - to then hit C-c C-c to commit the patch. The other is to use - PCL cvs mode to tag many files and then to diff them into a - buffer which can again be edited and committed. +## commit-patch + +See the man page or perldoc: + + man ./commit-patch.1 + perldoc commit-patch + + +## commit-patch-buffer.el + +commit-patch-buffer.el is an emacs interface to `commit-patch`. It +allows you to just hit `C-c C-c` in any patch buffer to apply and commit +only the changes indicated by the patch, regardless of the changes in +your working directory. + +To use commit-patch-buffer with diff mode automatically, add this to +your emacs init file: + + (eval-after-load 'diff-mode + '(require 'commit-patch-buffer nil 'noerror)) + +The easy way of working with commit-patch-buffer is to `M-x vc-diff` a +file (or `M-x vc-root-diff` your whole project) then kill, split or edit +the resulting hunks using diff mode's built-in commands and to then hit +`C-c C-c` to commit the patch. + + Homepage -------- -- 2.51.2 From 1bda6d0e9289091c09bb833cd6c80229485d5dec Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:44:40 -0700 Subject: [PATCH 07/17] README.md: Move final prequisite paragraph to the top --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 908ac46..da4dfb6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,11 @@ Commit patches to Darcs, Git, Mercurial, Bazaar, Monotone, Subversion, or CVS Prerequisites ------------- -commit-patch relies on several programs to get the job done: +`commit-patch` is known to run on Linux and Mac OS X. It is perl, +so ideally it will run anywhere, but we have never tested in +other environments, most notably Windows. Use at your own risk. + +`commit-patch` relies on several programs to get the job done: - [perl](https://www.perl.org) - [patch](https://www.gnu.org/software/patch/) @@ -39,9 +43,6 @@ On Mac OS X w/ [Homebrew](https://brew.sh) brew install patchutils cpan -i IPC::Run -commit-patch is known to run on Linux and Mac OS X. It is perl, -so ideally it will run anywhere, but we have never tested in -other environments, most notably Windows. Use at your own risk. Instructions ------------ -- 2.51.2 From 0e084112151db959bc811a515d5c4a8fab5e7a38 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:45:41 -0700 Subject: [PATCH 08/17] README.md: Add Installation and Development sections, removing IPC::Run from Prerequisites since we're fatpacked now --- README.md | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index da4dfb6..9216e72 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,20 @@ commit-patch Commit patches to Darcs, Git, Mercurial, Bazaar, Monotone, Subversion, or CVS +Installation +------------ + +On a recent Debian/Ubuntu: + + apt install commit-patch + +Anywhere else: Install the prerequisites below and download the release +tarball from the [homepage](https://porkrind.org/commit-patch/). This +tarball contains a "fatpackad" version of the `commit-patch` perl script +with the external perl dependencies embedded. Then put the commit-patch +and commit-partial binaries into your `PATH`. + + Prerequisites ------------- @@ -32,16 +46,15 @@ and, of course, one of: On Debian/Ubuntu: - apt-get install libipc-run-perl patch patchutils + apt-get install patch patchutils On Fedora: - yum install perl-IPC-Run patch patchutils + yum install patch patchutils On Mac OS X w/ [Homebrew](https://brew.sh) brew install patchutils - cpan -i IPC::Run Instructions @@ -74,6 +87,17 @@ the resulting hunks using diff mode's built-in commands and to then hit `C-c C-c` to commit the patch. +Development +----------- + +`commit-patch` uses [Carton](https://github.com/perl-carton/carton) for +local development. Once Carton is installed: + + carton install + +After than `commit-patch` and `commit-partial` should work (there is no +need to `carton exec` them—the code autodetects the local libs. + Homepage -------- -- 2.51.2 From bfef508901d023fe6cea2bd3dad2ee3ca60921da Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:47:36 -0700 Subject: [PATCH 09/17] README.md: Fix instruction headings --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9216e72..741fb29 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ On Mac OS X w/ [Homebrew](https://brew.sh) Instructions ------------ -## commit-patch +### commit-patch See the man page or perldoc: @@ -68,7 +68,7 @@ See the man page or perldoc: perldoc commit-patch -## commit-patch-buffer.el +### commit-patch-buffer.el commit-patch-buffer.el is an emacs interface to `commit-patch`. It allows you to just hit `C-c C-c` in any patch buffer to apply and commit -- 2.51.2 From 0c82932fe38bc2f28a5e06c6db14e92098d3505d Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sat, 4 Sep 2021 11:49:15 -0700 Subject: [PATCH 10/17] README.md: Fix unclosed parenthetical --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 741fb29..502b97e 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ local development. Once Carton is installed: carton install -After than `commit-patch` and `commit-partial` should work (there is no +After than `commit-patch` and `commit-partial` should work. There is no need to `carton exec` them—the code autodetects the local libs. -- 2.51.2 From 91c0bcd5c5688d4774a32e8b9bdb7e0e8b83a410 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Fri, 3 Sep 2021 13:04:41 -0700 Subject: [PATCH 11/17] commit-patch-buffer.el: Fix buffers not getting reverted after committing to git Two issues caused detection of buffers from patch filenames to fail: 1. git uses a/some/file where cvs used some/file. 2. (find-buffer-visiting) doesn't seem to work with relative paths. Closes #14 --- commit-patch-buffer.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/commit-patch-buffer.el b/commit-patch-buffer.el index a156cc9..e5470d9 100644 --- a/commit-patch-buffer.el +++ b/commit-patch-buffer.el @@ -91,7 +91,10 @@ one." (log-buffer-name (if amend "*amend*" "*commit*")) (f patch-files) visiting-buffers) (while (car f) - (let ((buf (find-buffer-visiting (car f)))) + (let* ((default-directory directory) + (buf (or + (find-buffer-visiting (expand-file-name (car f))) + (find-buffer-visiting (expand-file-name (diff-filename-drop-dir (car f))))))) (when buf (with-current-buffer buf (vc-buffer-sync)) (add-to-list 'visiting-buffers buf))) -- 2.51.2 From 9980f4a78fa3f29eff3d0f37a5a68960bc4de988 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 08:49:53 -0700 Subject: [PATCH 12/17] Version 2.6.1 --- Changes | 7 +++++++ commit-patch | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index 3dc6d0b..92324c8 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,10 @@ +commit-patch (2.6.1) + + * Fixed a bug in `commit-patch-buffer` that caused `vc-annotate` to be + out of date (https://github.com/caldwell/commit-patch/issues/14). + + -- David Caldwell Mon, 06 Sep 2021 08:48:57 -0700 + commit-patch (2.6) * Support --amend from the Emacs interface (Dima Kogan) diff --git a/commit-patch b/commit-patch index 9694117..435f378 100755 --- a/commit-patch +++ b/commit-patch @@ -3,7 +3,7 @@ # and Jim Radford # This code can be distributed under the terms of the GNU Public License (Version 2 or greater). -my $VERSION = '2.6'; +my $VERSION = '2.6.1'; use strict; use Cwd qw(abs_path); -- 2.51.2 From a33567f5df04eeefc707f4ba8ea6aff32fd1a1e7 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 09:03:11 -0700 Subject: [PATCH 13/17] Commit the symlinks to the repo instead of creating them in the Makefile --- .gitignore | 3 +-- Makefile | 6 ------ commit-partial | 1 + commit-partial.1 | 1 + 4 files changed, 3 insertions(+), 8 deletions(-) create mode 120000 commit-partial create mode 120000 commit-partial.1 diff --git a/.gitignore b/.gitignore index 8b1483a..485c3de 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ \#* *.patch *.html -*.1 +commit-patch.1 *.orig -commit-partial *.tmp diff --git a/Makefile b/Makefile index ab4c88c..72c4889 100644 --- a/Makefile +++ b/Makefile @@ -12,15 +12,9 @@ commit-patch.fat: commit-patch carton exec fatpack pack $< > $@ chmod +x $@ -commit-partial: - ln -s commit-patch commit-partial - commit-patch.1: commit-patch pod2man -c "User Commands" $< > $@ -commit-partial.1: - ln -s commit-patch.1 commit-partial.1 - commit-patch.html: commit-patch pod2html --title="commit-patch Documentation" $< > $@ diff --git a/commit-partial b/commit-partial new file mode 120000 index 0000000..ddb7acb --- /dev/null +++ b/commit-partial @@ -0,0 +1 @@ +commit-patch \ No newline at end of file diff --git a/commit-partial.1 b/commit-partial.1 new file mode 120000 index 0000000..784f136 --- /dev/null +++ b/commit-partial.1 @@ -0,0 +1 @@ +commit-patch.1 \ No newline at end of file -- 2.51.2 From 3d8d5b4aa7158efdb2f50465e067d1a536b6a7de Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 09:04:46 -0700 Subject: [PATCH 14/17] Makefile: README is now README.md --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 72c4889..2db8bfb 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ VERSION := $(shell perl -ne '/VERSION\s*=\s*'"'(.*)'"'/ and print "$$1"' commit- BIN = commit-patch commit-partial MAN = commit-patch.1 commit-partial.1 ELISP = commit-patch-buffer.el -DOC = commit-patch.html README COPYING Changes +DOC = commit-patch.html README.md COPYING Changes ALL = $(BIN) $(MAN) $(ELISP) $(DOC) all: $(ALL) -- 2.51.2 From 92d4d3e2b36910111c26c88c6713877e4ff27006 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 09:13:03 -0700 Subject: [PATCH 15/17] commit-patch: fix very important unterminate parenthesis in documentation that's been there since 2008 --- commit-patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commit-patch b/commit-patch index 435f378..9b5b2c9 100755 --- a/commit-patch +++ b/commit-patch @@ -284,7 +284,7 @@ patch from the current changes in the current working directory and launch your editor so that you can edit the patch and the commit message (using the B environment variable, or if that isn't set the B environment variable, or, if I isn't set, -B. Any files you specify will be passed to your version control's +B). Any files you specify will be passed to your version control's diff command. B currently supports the following version control systems: -- 2.51.2 From 69fe2a5b5464b52a615107fb573e7f20f151a93f Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 09:15:32 -0700 Subject: [PATCH 16/17] README.md: Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 502b97e..11ef90b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ On a recent Debian/Ubuntu: Anywhere else: Install the prerequisites below and download the release tarball from the [homepage](https://porkrind.org/commit-patch/). This -tarball contains a "fatpackad" version of the `commit-patch` perl script +tarball contains a "fatpacked" version of the `commit-patch` perl script with the external perl dependencies embedded. Then put the commit-patch and commit-partial binaries into your `PATH`. -- 2.51.2 From 897512cd0fbe5a86208915f04d1056537ea4f4c9 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Mon, 6 Sep 2021 10:44:19 -0700 Subject: [PATCH 17/17] Makefile: Don't create the commit-patch.fat unless it worked --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2db8bfb..7bab91a 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,8 @@ ALL = $(BIN) $(MAN) $(ELISP) $(DOC) all: $(ALL) commit-patch.fat: commit-patch - carton exec fatpack pack $< > $@ + carton exec fatpack pack $< > $@.new || { rm -f $@.new; false; } + mv -f $@.new $@ chmod +x $@ commit-patch.1: commit-patch -- 2.51.2