Che cosa significa il simbolo dello stato di Subversion “~” significa?
Domanda
io sono sempre un simbolo tilde quando faccio un svn status
.
Ecco l'output del progetto dopo la modifica in XCode.
svn status
M build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~ build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M main.m
//more changed files
Qualche idea di cosa vuol dire? non riesco a trovare su Google o uno qualsiasi dei fogli svn frode.
È interessante notare, ho solo modificato main.m, ma ci sono un sacco di file modificati. So perché sarebbe. Qualcuno ha qualche consiglio per lavorare con SVN e XCode? Dovrei essere solo mettere i miei file di origine sotto controllo di versione?
Modifica - causata da un file che era già sotto controllo di versione essere sostituita da un file di un altro tipo. In questo caso, strings.pbxstrings usato per essere un file e ora è diventato una directory. Morale della storia è di non mettere la cartella creata nel controllo della versione.
Soluzione
Il SVN Libro dice :
L'articolo è di versione come un tipo di oggetto (file, directory, link), ma è stato sostituito da altro tipo di oggetto.
Quindi, forse, era in origine un singolo file, ma è cambiato in una directory, o qualcosa del genere?
Altri suggerimenti
Ecco quello che ho fatto:
Se la cartella è Test
- mv test Test1
- svn rimuovere test
- mv Test1 test
Da
svn help status
'~' oggetto di versione ostruito da qualche elemento di tipo diverso
ho visto solo questo, dove i permessi dei file erano cambiate e svn non avevano eseguito l'accesso su di esso ho beleive.
Spero che questo aiuti.
Il modo più semplice per risolvere questo problema è quello di backup, quindi eliminare la cartella o il file che ha questo status e poi fare "svn up": non è necessariamente una cartella relplaced da un file, potrebbe essere solo quella cartella svn è mancante o danneggiato.
svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"
Questo può accadere quando si rimuove la cartella svn in una cartella (con l'esempio quando si rimuove una directory, e quindi si crea di nuovo nella stessa directory), o quando si sostituisce una directory con un collegamento simbolico, o un file con lo stesso nome.
Supponendo che sia una cartella chiamata a-cartella, è possibile risolvere questo problema eseguendo i seguenti comandi nella cartella principale:
$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E a-folder
...
Updated to revision n.
E poi è questione di svn aggiunta / rimozione e commettere di nuovo le modifiche
Ha avuto un problema simile, SVN si lamentava una serratura. Ecco cosa abbiamo fatto:
- eseguito il backup dei file
- Rimosso la directory in questione con rm -r (linux)
- Ran svn cleanup sulla directory
- Ran svn up force sulla directory
Voglio solo condividere che questo è un problema frequente durante l'installazione di estensioni all'interno di Joomla. Le estensioni sono installati attraverso il CMS e sono di proprietà di apache senza scrittura di gruppo. In genere il passo successivo è quello di aggiungere i file al SVN, ma se non lo fai sudo o modificare i permanenti di file, quindi SVN fallisce quando non può scrivere la directory .svn. Ecco la soluzione facile.
mv foo foo-bak
svn up foo
svn revert foo
# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo
mv foo-bak foo
svn add foo
Può essere anche collegamenti questione di simbolici sotto Windows. Quando si impegnano collegamento simbolico in SVN e quindi controllare fuori sotto Windows, i collegamenti vengono modificati in file regolari e questo viene segnalato anche come ~.
Ho spesso avuto questo durante l'aggiornamento moduli sotto (ad es.) Joomla !, Drupal Wordpress o. A volte la directory .svn vengono rimossi dal processo di aggiornamento.
# rename updated directory
mv foo foo.new
# restore the old directory
svn up foo
# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo
# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"
~ versioned item obstructed by some item of a different kind
Second column: Modifications of a file's or directory's properties