From Gentoo Wiki
Jump to: navigation, search
This is a talk page. Please add newer comments below older ones, and sign your comments using four tildes (~~~~). When adding a new section (at the bottom of the page), please mark it as "open for discussion" by using {{talk|open}} so it will show up in the list of open discussions.

How to create a patch?

Talk status
This discussion is done.

What I am missing here is a simple example how to do it. Something like:

--- Begin ---

If souce code is provided as a git repository, get and unpack it:

user $ebuild $(portageq get_repo_path / gentoo)/x11-misc/pcmanfm/pcmanfm-9999.ebuild clean unpack
 * checking ebuild checksums ;-) ...                                                                                                                               [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                              [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                             [ ok ]
>>> Unpacking source...
 * Fetching git:// ...
git fetch git:// +HEAD:refs/git-r3/HEAD
git symbolic-ref refs/git-r3/x11-misc/pcmanfm/0/__main__ refs/git-r3/HEAD
 * Checking out git:// to /var/tmp/portage/x11-misc/pcmanfm-9999/work/pcmanfm-9999 ...
git checkout --quiet refs/git-r3/HEAD
GIT update -->
   repository:               git://
   at the commit:            4fbe54d913bd5d7ad890c69f55878da924c67eb5
>>> Source unpacked in /var/tmp/portage/x11-misc/pcmanfm-9999/work

Step into the git repository just created:

user $cd /var/tmp/portage/x11-misc/pcmanfm-9999/work/pcmanfm-9999

Modify some file, e.g ./data/ui/

Let git diff display the difference (works very nice even if more or many files were modified):

user $git diff HEAD
diff --git a/data/ui/ b/data/ui/
index f834427..7932953 100644
--- a/data/ui/
+++ b/data/ui/
@@ -3,8 +3,6 @@ NULL=
 # GtkBuilder UI definition files
 ui_SOURCES = \
- \
- \ \ \

Save the differences into a file:

user $git diff HEAD > /tmp/mypatch.patch

--- END ---

Git will do it all (almost).--Charles17 (talk) 14:30, 31 July 2017 (UTC)

In case the source code is not providing a git repository, see User:Charles17/cheat_sheet#Creating_a_patch. But that example needs to get much more text explaining it. --Charles17 (talk) 08:00, 1 August 2017 (UTC)

TortoiseGit and Git for Windows

Talk status
This discussion is done.

As the main section header is called "Creating patches": How could a Gentoo user create patches with those tools which both seem not being available on Gentoo?--Charles17 (talk) 18:28, 31 July 2017 (UTC)

Just renamed that section.--Charles17 (talk) 13:46, 1 August 2017 (UTC)