diff --git a/documentation/content/en/books/porters-handbook/upgrading/_index.adoc b/documentation/content/en/books/porters-handbook/upgrading/_index.adoc --- a/documentation/content/en/books/porters-handbook/upgrading/_index.adoc +++ b/documentation/content/en/books/porters-handbook/upgrading/_index.adoc @@ -90,7 +90,7 @@ [source,shell] .... % git clone https://git.FreeBSD.org/ports.git ~/my_wrkdir <.> <.> -% cd ~/my_wrkdir/dns/pdnsd +% cd ~/my_wrkdir .... <.> This can be anywhere, of course. Building ports is not limited to within [.filename]#/usr/ports/#. @@ -108,19 +108,29 @@ Make sure to check the port using the checklist in crossref:quick-porting[porting-testing,Testing the Port] and crossref:quick-porting[porting-portlint,Checking the Port with `portlint`]. +Before making the patch, fetch the latest repository and rebase the changes on top of it. +Watch and follow the output carefully. +If any of the files failed to rebase, it means that the upstream files changed while you were editing the same file, and the conflicts need to be resolved manually. + [source,shell] .... -% git status --short -% git pull --rebase <.> +% git fetch origin main +% git rebase origin/main .... -<.> This will attempt to merge the differences between the patch and current repository version. Watch the output carefully. The letter in front of each file name indicates what was done with it. +Check the changes staged for the patch: + +[source,shell] +.... +% git status +% git diff --staged +.... The last step is to make a unified man:diff[1] of the changes: [source,shell] .... -% git diff . > ../`make -VPKGNAME`.diff +% git diff --staged > ../`make -VPKGNAME`.diff .... [NOTE]