Portál AbcLinuxu, 12. května 2025 15:31

Dotaz: diff neodstraňuje staré súbory

30.12.2010 20:18 majo053
diff neodstraňuje staré súbory
Přečteno: 161×
Odpovědět | Admin
Ahoj, zaujímalo by ma ako spraviť diff nového projektu s tým, že v novom projekte sa odstránili niektoré súbory čo nie sú v starom, ale po opatchovaní starého projektu tam ostanú aj nepotrebné súbory, ktoré už ten nový nemá?

Robím to takto:

# diff -ruN projekt.stary projekt.novy > projekt.patch
[projekt.opatchovany]# patch -p1 -i ../projekt.patch
Po tomto mi tam ostanú aj staré nepotrebné súbory v opatchovanom projekte ako som písal.

Neviete prosim niekto aký použiť prepínač? Ďakujem pekne.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.12.2010 20:41 majo053
Rozbalit Rozbalit vše Re: diff neodstraňuje staré súbory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zrejme mi pri patchovaní pomohol prepínač -E:

patch -E -p1 -i ../projekt.patch
-E  or  --remove-empty-files
          Remove output files that are empty after the patches have been applied.  Normally this option  is  unneces-
          sary,  since patch can examine the time stamps on the header to determine whether a file should exist after
          patching.  However, if the input is not a context diff or if patch is conforming to POSIX, patch  does  not
          remove  empty  patched  files  unless this option is given.  When patch removes a file, it also attempts to
          remove any empty ancestor directories.
30.12.2010 20:51 NN
Rozbalit Rozbalit vše Re: diff neodstraňuje staré súbory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Udelal jsem to presne podle tebe a funguje to:
$ find
.
./patch
./test
./test/a
./test/a/a
./test/b
./test/b/b
./test/c
./test/c/c
./test2
./test2/a
./test2/a/a
./test2/b
./test2/b/b
./test2/d
./test2/d/d
$ diff -ruN test test2 > patch:
$ cat patch
diff -ruN test/a/a test2/a/a
--- test/a/a    2010-12-30 20:41:47.453125000 +0100
+++ test2/a/a   2010-12-30 20:37:17.656250000 +0100
@@ -1,2 +1 @@
 1
-2
diff -ruN test/b/b test2/b/b
--- test/b/b    2010-12-30 20:41:50.078125000 +0100
+++ test2/b/b   2010-12-30 20:37:20.437500000 +0100
@@ -1,2 +1 @@
 1
-2
diff -ruN test/c/c test2/c/c
--- test/c/c    2010-12-30 20:40:32.640625000 +0100
+++ test2/c/c   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-1
diff -ruN test/d/d test2/d/d
--- test/d/d    1970-01-01 01:00:00.000000000 +0100
+++ test2/d/d   2010-12-30 20:41:16.390625000 +0100
@@ -0,0 +1 @@
+1
/test/$ patch -p1 -i ../patch
patching file a/a
patching file b/b
patching file c/c
patching file d/d
$ find
.
./patch
./test
./test/a
./test/a/a
./test/b
./test/b/b
./test/d
./test/d/d
./test2
./test2/a
./test2/a/a
./test2/b
./test2/b/b
./test2/d
./test2/d/d
Puvodni adresar c/ a soubor c to odstranilo a naopak pridalo adresar d/ a soubor d.

Takze netusim :D..

NN

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.