Domanda

$svn diff > patchfile

crea un bel patchfile. Tuttavia, utilizzando TortoiseSVN sotto Windows ho impostato alcuni file come "ignorato-on-commit", vale a dire, è sotto il controllo di versione, ma non viene selezionata, quando faccio un impegno.

TortoiseSVN gestisce apparentemente questo tramite una voce personalizzata in .svn/entries per questo file. Si noti, che non è una proprietà normale SVN (cioè non fetchable via svn propget).

Il mio problema è che io voglio creare un file di patch tramite linea di comando (tramite bash di Cygwin e la porta SVN), ma questo file cerotto deve non includere i file con questo 'ignore-on- commit' bandiera.

Qualcuno ha un'idea di come fare questo (oltre a camminare con awk in modo ricorsivo attraverso ogni .svn/entries ...)?

È stato utile?

Soluzione

A quanto pare si tratta di un changelist . Per quanto riguarda come poi ignorare il file / s dalla riga di comando, non sembra che ci sia un particolarmente facile modo .

Altri suggerimenti

È possibile visualizzare l'elenco modifiche via 'svn info' sul file. E SET changelists / RESET tramite la 'svn changelist'

$ svn help cl
changelist (cl): Associate (or dissociate) changelist CLNAME with the named files.
usage: 1. changelist CLNAME TARGET...
       2. changelist --remove TARGET...

Valid options:
  -q [--quiet]             : print nothing, or only summary information
  -R [--recursive]         : descend recursively, same as --depth=infinity
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                            'immediates', or 'infinity')
  --remove                 : remove changelist association
  --targets ARG            : pass contents of file ARG as additional args
  --changelist ARG         : operate only on members of changelist ARG
                             [aliases: --cl]

Ho avuto anche questo problema, e quindi sviluppato una semplice catena di comando al server la necessità:

svn st | grep -A 1000 'ignorare-on-commit' | grep -v 'ignorare-on-commit' | sed 's /^.* // g' | xargs svn diff | gvim -

(Supponendo è inferiore a 1000 file modificati al di fuori changelist 'ignorare-on-commit')

Con questo comando, i file modificati al di fuori changelist 'ignorare-on-commit' sarà diff-ed, e nessuna modifica file all'interno di 'ignorare-on-commit' saranno inclusi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top