[megoldva] patch révén fájl létrehozás

Fórumok

Adott egy A fájl és egy patch foltfájl, ami az A és B fájlok közti különbséget mutatja.
Szeretnék kiadni egy olyan patch parancsot, ami A alapján létrehozza (az adott könyvtárban még nem létező) B-t.

Egy példa itt a fájlokra: http://pastebin.com/23r9JpRE

====
A megoldás:

--- /dev/null
+++ ./B

cp A B
patch -p1 < patchfile

Hozzászólások

jól értem, hogy te a régi fájlt megtartva akarsz egy új fájlt létrehozni, úgy, hogy a régiből és a különbségből generálódjon az új?

Tud egyáltalán ilyet a diff?

a példámnál maradva

ez frissíti az adott fájlt
--- a/backports/backports.txt
+++ b/backports/backports.txt

ez létrehoz egy új fájlt új tartalommal (a diff a teljes fájlt tartalmazza)
--- /dev/null
+++ b/backports/v3.2.27_devm-revert.patch

ez nem tudom, hogy támogatott művelet-e, de ha az lenne, akkor feltételezem hogy átnevezés
--- a/backports/backports.txt
+++ b/backports/kiskutya.txt

Igen, jól érted a vágyamat (régi megmarad, új létrehoz a különbségből).

A dolognak egyébként az a háttere, hogy időnként jönnek újabb igények egy-egy SQL szkript kialakítására, módosítására, és ezeket az igényeket efféle patch-ként szeretném megvalósítani, úgy, hogy közben a többi korábbi igényt (s a folyamat során kialakuló fájl-fázisokat) se kelljen eldobni.

Köszi az infókat.

lehet, hogy a harmadik példa az ami neked kell... talán nem törli le az A-t.
A törlésnél a B a /dev/null lesz ha jól emlékszem

Annyiból értelmes lehet az amit szeretnél, hogy úgy megmondhatod hanyadik patchig legyen alkalmazva a változtatás, ha például különböző verziójú rendszerekhez is ugyanazt a patch csomagot használod.
Ha csak verziókövetésre kell, akkor jobban járhatsz egy verziókövető rendszerrel (svn vagy git például)