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.

È stato utile?

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

  1. mv test Test1
  2. svn rimuovere test
  3. 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top