Het kan ook zonder handmatig de patch file(s) aan te passen, Git heeft hier zelf ondersteuning voor.
Ga eerst naar repository A en genereer een lijst patches (in dit voorbeeld alleen de laatste commit, maar je bent natuurlijk vrij om zelf een range te specificeren):
Dit geeft een file met een naam als '0001-patched-lib-src.patch'. In die file worden paths uit repository A gebruikt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| $ cat ../0001-added-lib-src.patch
From c0281a10879d8bd955b8ca7e00a2e4e2a13bfdcb Mon Sep 17 00:00:00 2001
From: Je Moeder <je@moeder.org>
Date: Sun, 15 Feb 2015 08:48:22 +0100
Subject: [PATCH] added lib src
---
website/script/lib/source.c | 1 +
1 file changed, 1 insertion(+)
create mode 100644 website/script/lib/source.c
diff --git a/website/script/lib/source.c b/website/script/lib/source.c
new file mode 100644
index 0000000..f4c6dce
--- /dev/null
+++ b/website/script/lib/source.c
@@ -0,0 +1 @@
+sources
--
2.3.0 |
Ga dan naar repository B en apply de patches, waarbij je met -p een stuk van het input path kunt strippen (je geeft het aantal leading slashes op, in dit geval wil ik 4 slashes verwijderen) en met --directory een nieuwe prefix voor het output path kunt opgeven:
code:
1
| git am -p4 --directory=src/lib < 0001-patched-lib-src.patch |
[
Voor 35% gewijzigd door
Arzie op 15-02-2015 09:04
]