This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Talk:Patches

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
Note
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.lxde.org/git/lxde/pcmanfm ...
git fetch git://git.lxde.org/git/lxde/pcmanfm +HEAD:refs/git-r3/HEAD
git symbolic-ref refs/git-r3/x11-misc/pcmanfm/0/__main__ refs/git-r3/HEAD
 * Checking out git://git.lxde.org/git/lxde/pcmanfm to /var/tmp/portage/x11-misc/pcmanfm-9999/work/pcmanfm-9999 ...
git checkout --quiet refs/git-r3/HEAD
GIT update -->
   repository:               git://git.lxde.org/git/lxde/pcmanfm
   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/Makefile.am

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/Makefile.am b/data/ui/Makefile.am
index f834427..7932953 100644
--- a/data/ui/Makefile.am
+++ b/data/ui/Makefile.am
@@ -3,8 +3,6 @@ NULL=
 # GtkBuilder UI definition files
 uidir=$(datadir)/pcmanfm/ui
 ui_SOURCES = \
-       pref.glade \
-       desktop-pref.glade \
        autorun.glade \
        connect.glade \
        $(NULL)

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)