it-swarm.com.de

Was bedeutet das Subversion-Statussymbol "~"?

Ich erhalte ein Tildesymbol, wenn ich ein svn status.

Hier ist die Ausgabe des Projekts nach dem Bearbeiten 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

Irgendeine Idee was das bedeutet? Kann nicht scheinen, es auf Google oder einem der SVN-Spickzettel zu finden.

Interessanterweise habe ich nur main.m bearbeitet, aber es gibt viele geänderte Dateien. Keine Ahnung, warum das so wäre. Hat jemand Tipps für die Arbeit mit SVN und XCode? Soll ich meine Quelldateien nur der Versionskontrolle unterstellen?

Edit: - Wird dadurch verursacht, dass eine Datei, die bereits der Versionskontrolle unterliegt, durch eine Datei eines anderen Typs ersetzt wird. In diesem Fall war strings.pbxstrings eine Datei und wurde jetzt zu einem Verzeichnis. Die Moral der Geschichte ist, dass Sie Ihren Build-Ordner nicht der Versionskontrolle unterstellen.

109
jergason

Das SVN-Buch sagt:

Das Objekt ist als eine Art von Objekt versioniert (Datei, Verzeichnis, Verknüpfung), wurde jedoch durch eine andere Art von Objekt ersetzt.

Also war es vielleicht ursprünglich eine einzelne Datei, aber Sie haben sie in ein Verzeichnis geändert oder so?

88
Chad Birch

Folgendes habe ich getan:

Wenn der Ordner Test ist

  1. mv Test Test1
  2. sVN entfernen Test
  3. mv Test1 Test
34
Tuong Le

Von

svn help status

'~' versionierter Gegenstand, der durch einen Gegenstand einer anderen Art blockiert ist

Ich habe dies nur gesehen, wo sich die Dateiberechtigungen geändert hatten und svn keinen Ausführungszugriff darauf hatte, glaube ich.

Hoffe das hilft.

15
user83632

Die einfachste Möglichkeit, dies zu beheben, besteht darin, eine Sicherungskopie zu erstellen, den Ordner oder die Datei mit diesem Status zu löschen und dann "svn up" auszuführen: Es handelt sich nicht unbedingt um einen Ordner, der durch eine Datei ersetzt wurde. Möglicherweise fehlt lediglich der Ordner .svn oder ist beschädigt .

12
deadprogrammer
svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"
11
sancelot

Dies kann passieren, wenn Sie den Ordner .svn in einem Ordner entfernen (beispielsweise, wenn Sie ein Verzeichnis entfernen und dann dasselbe Verzeichnis erneut erstellen) oder wenn Sie ein Verzeichnis durch eine symbolische Verknüpfung oder eine Datei mit demselben Namen ersetzen .

Angenommen, es handelt sich um einen Ordner namens a-folder. Sie können dies beheben, indem Sie die folgenden Befehle im übergeordneten Ordner eingeben:

$ 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.

Und dann geht es darum, dass svn die Änderungen hinzufügt/entfernt und erneut festschreibt

10

Hatte ein ähnliches Problem, beschwerte sich SVN über eine Sperre. Folgendes haben wir getan:

  • Sicherte die Dateien
  • Das betreffende Verzeichnis mit rm -r (Linux) entfernt
  • Ran svn cleanup für das Verzeichnis
  • Ran svn up --force im Verzeichnis
3
M.W. Felker

Ich möchte nur mitteilen, dass dies ein häufig auftretendes Problem bei der Installation von Erweiterungen in Joomla ist. Die Erweiterungen werden über das CMS installiert und gehören Apache ohne Gruppenschreibzugriff. Im Allgemeinen besteht der nächste Schritt darin, die Dateien zum SVN hinzuzufügen. Wenn Sie jedoch kein Sudo ausführen oder die Dateiberechtigungen nicht ändern, schlägt SVN fehl, wenn das SVN-Verzeichnis nicht geschrieben werden kann. Hier ist die einfache Lösung.

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
3
Collin James

Ich hatte dies oft während des Upgrades von Modulen unter (zB) Joomla !, Wordpress oder Drupal. Manchmal wird das .svn-Verzeichnis durch den Aktualisierungsvorgang entfernt.

# 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"
2
Marc Druilhe

Es kann sich auch um symbolische Verknüpfungen unter Windows handeln. Wenn Sie einen symbolischen Link in SVN übernehmen und ihn dann unter Windows auschecken, werden die Links in reguläre Dateien geändert und dies wird auch als ~ gemeldet.

2
zbyszanna
~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties
0
Nanhe Kumar