Update patch conflict instructions/workflow

This commit is contained in:
Luuk van Baal 2022-05-31 11:07:31 +02:00
parent 0499998e2a
commit 3072aa7891
No known key found for this signature in database
GPG Key ID: E7D1BC845D39FA83
3 changed files with 11 additions and 10 deletions

View File

@ -43,12 +43,13 @@ jobs:
env:
CC: gcc
run: |
export PATCH_OPTS="--merge"
patches=("O_GITSTATUS" "O_NAMEFIRST" "O_RESTOREPREVIEW")
z=$(( 1 << ${#patches[@]} ))
for ((n=1; n < z; ++n)); do
for ((i=0; i < ${#patches[@]}; ++i)); do
printf "%s=%d " "${patches[$i]}" "$(( (n & (1 << i)) != 0 ))"
done | tee "tmp" ; echo
make clean
make clean -s
xargs make <"tmp"
done

View File

@ -312,28 +312,28 @@ clean:
prepatch:
ifeq ($(strip $(O_NAMEFIRST)),1)
patch --forward --merge --strip=1 --input=$(NAMEFIRST)/mainline.diff
patch --forward $(PATCH_OPTS) --strip=1 --input=$(NAMEFIRST)/mainline.diff
ifeq ($(strip $(O_GITSTATUS)),1)
patch --forward --merge --strip=1 --input=$(GITSTATUS)/namefirst.diff
patch --forward $(PATCH_OPTS) --strip=1 --input=$(GITSTATUS)/namefirst.diff
endif
else ifeq ($(strip $(O_GITSTATUS)),1)
patch --forward --merge --strip=1 --input=$(GITSTATUS)/mainline.diff
patch --forward $(PATCH_OPTS) --strip=1 --input=$(GITSTATUS)/mainline.diff
endif
ifeq ($(strip $(O_RESTOREPREVIEW)),1)
patch --forward --merge --strip=1 --input=$(RESTOREPREVIEW)/mainline.diff
patch --forward $(PATCH_OPTS) --strip=1 --input=$(RESTOREPREVIEW)/mainline.diff
endif
postpatch:
ifeq ($(strip $(O_NAMEFIRST)),1)
ifeq ($(strip $(O_GITSTATUS)),1)
patch --merge --reverse --strip=1 --input=$(GITSTATUS)/namefirst.diff
patch --reverse $(PATCH_OPTS) --strip=1 --input=$(GITSTATUS)/namefirst.diff
endif
patch --merge --reverse --strip=1 --input=$(NAMEFIRST)/mainline.diff
patch --reverse $(PATCH_OPTS) --strip=1 --input=$(NAMEFIRST)/mainline.diff
else ifeq ($(strip $(O_GITSTATUS)),1)
patch --merge --reverse --strip=1 --input=$(GITSTATUS)/mainline.diff
patch --reverse $(PATCH_OPTS) --strip=1 --input=$(GITSTATUS)/mainline.diff
endif
ifeq ($(strip $(O_RESTOREPREVIEW)),1)
patch --merge --reverse --strip=1 --input=$(RESTOREPREVIEW)/mainline.diff
patch --reverse $(PATCH_OPTS) --strip=1 --input=$(RESTOREPREVIEW)/mainline.diff
endif
skip: ;

View File

@ -20,6 +20,6 @@ To apply a patch, use the corresponding make variable, e.g.:
Whenever patch conflicts occur on the latest master, pull requests resolving them are welcome. Let's say a conflict occurs in the `restorepreview` patch. The best way to resolve this conflict would be something along the lines of:
- Ensure you're on latest master and run `cp src/nnn.c src/nnn.c.orig && make O_RESTOREPREVIEW=1`. This will save a copy of the source from master in `src/nnn.c.orig` and generate conflict markers in `src/nnn.c`.
- Ensure you're on latest master and run `cp src/nnn.c src/nnn.c.orig && PATCH_OPTS="--merge" make O_RESTOREPREVIEW=1`. This will save a copy of the source from master in `src/nnn.c.orig` and generate conflict markers in `src/nnn.c`.
- Next edit `src.nnn`, resolve all the conflicts around the conflict markers(`<<<<<<<`), and save.
- Then run `diff -u src/nnn.c.orig src/nnn.c > patch.diff` to generate the new patch file and copy the contents to `patches/restorepreview/mainline.diff` (keeping the description comment at the start of the file).