Unter UNIX und Linux, wenn Sie
sagen %Vor%Dann erweitert die Shell alle Dateien im Verzeichnis und das Programm sieht genauso aus, als ob Sie
getippt hätten %Vor% usw. Das bedeutet, dass der Subversion-Befehl denkt, dass Sie die Datei zum Hinzufügen explizit aufgelistet haben. In diesem Fall wird es hinzugefügt, obwohl die svn:ignore
-Eigenschaft möglicherweise festgelegt wurde.
Aus der Dokumentation von svn:ignore
(mein Schwerpunkt):
Subversion verwendet die Ignoriermuster, um zu bestimmen, welche Dateien nicht als Teil einer rekursiven Addition oder einer Importoperation in das Versionskontrollsystem übernommen werden sollen.
Super alte Frage, aber ich bin gerade in dieses Problem geraten und die Lösung, die ich gefunden habe, ist hier nicht aufgeführt. Adrian Smiths Antwort ist auf dem richtigen Weg. Ich nehme an, die Docs und SVN selbst haben viele Updates in 5 Jahren gesehen. Hier ist, was ich in den SVN-Dokumenten
gefunden habe >Auch wenn
svn:ignore
gesetzt ist, können Probleme auftreten, wenn Sie Shell-Platzhalter in einem Befehl verwenden. Shell-Platzhalter werden in eine explizite Liste von Zielen erweitert, bevor Subversion auf ihnen arbeitet. Daher ist das Ausführen vonsvn SUBCOMMAND *
genauso wie das Ausführen vonsvn SUBCOMMAND file1 file2 file3 …
. Im Falle des Befehlssvn add
hat dies einen ähnlichen Effekt wie die Übergabe der Option--no-ignore
. Anstatt also einen Platzhalter zu verwenden, verwenden Siesvn add --force .
, um eine Massenplanung von nicht versionierten Objekten für die Addition durchzuführen. Das explizite Ziel stellt sicher, dass das aktuelle Verzeichnis nicht übersehen wird, da es bereits der Versionskontrolle unterliegt, und die Option--force
veranlasst Subversion, durch dieses Verzeichnis zu crawlen, wobei unversionierte Dateien hinzugefügt werden, während diesvn:ignore
-Eigenschaft und% co_de weiterhin berücksichtigt werden % Laufzeitkonfigurationsvariable. Stellen Sie sicher, dass Sie auch die Optionglobal-ignores
für den Befehl--depth files
angeben, wenn Sie keine vollständig rekursive Crawlersuche für hinzuzufügende Elemente durchführen möchten.
Die Kurzversion ist svn add
. Das funktioniert perfekt für mich.
Ich fand das diese Frage enthält eine sehr gute Lösung. Da die Antwort die Frage nicht beantwortet, glaube ich nicht, dass sie doppelt ist. Kurz gesagt nutzen Sie die Macht der Unix-Tools (arbeitet mit Cygwin unter Windows):
svn status | grep '?' | sed 's/^.* /svn add /' | bash
Haben Sie versucht, die config.js zu übergeben, um zu sehen, ob sie wirklich ignoriert wird? Ich denke, wenn Sie Svn ausdrücklich sagen, eine Datei der Versionskontrolle hinzuzufügen, wird es die Ignorierung überfahren.
Verwenden Sie diesen Befehl anstelle von svn add --force *
:
In diesem Fall analysiert svn selbst alle Dateien im Verzeichnis und berücksichtigt die ignorierten Dateien, aber wenn Sie * verwenden, weisen Sie svn ausdrücklich an, alle Dateien hinzuzufügen.