Wie Sie CVS-Verzeichnisse rekursiv hinzufügen
Ich habe schon mit CVS ein wenig und bin nicht der am meisten vertraut mit all seinen Fähigkeiten, aber ein großes ärgernis für mich ist, versuchen Sie neue Verzeichnisse mit mehreren Verzeichnissen. Läuft "cvs add
" fügt nur den Inhalt des aktuellen Verzeichnisses, und mit "cvs import
" sah nicht aus wie der richtige, da er immer noch alle code bin ich produziert (dieses howto behauptet import ist für 3rd-party-Quellen)
Tun Sie Jungs wissen, jeder Weg, um rekursiv hinzufügen, alles in ein bestimmtes Verzeichnis auf den aktuellen CVS-Projekt (oder wenn SVN oder git macht dies wesentlich einfacher)?
Kommentar zu dem Problem
ja, SVN und git sind vor allem leichter rekursiv einschließlich der Verzeichnisse.
InformationsquelleAutor der Frage Chris Bunch | 2008-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ah, Räume. Dies funktioniert mit Leerzeichen:
InformationsquelleAutor der Antwort Mark Harrison
Fand ich dies funktionierte Recht effektiv:
Fügen Sie zuerst alle Verzeichnisse, aber keine namens "CVS":
Dann fügen Sie alle die Dateien, ohne alles in ein CVS-Verzeichnis:
Nun, wenn jemand eine Heilung für die Peinlichkeit der Verwendung von CVS in diesem Tag und Alter...
InformationsquelleAutor der Antwort Tom
Benutze ich dieses:
Fügen Sie zunächst rekursiv alle Verzeichnisse, die weniger CVS:
Zweiten fügen Sie alle Dateien, weniger diejenigen, die CVS-Verzeichnisse:
Dritten tun "Begehen" rekursiv wie "erste version" Kommentar:
Letzten tagging alle rekursiv:
InformationsquelleAutor der Antwort manufosela
Fügen Sie zunächst alle Verzeichnisse CVS
Dann fügen Sie alle Dateien in den Verzeichnissen CVS
War für mich
InformationsquelleAutor der Antwort phoneynk
cvs import
ist nicht nur für 3rd-party-Quellen. In der Tat, Verzeichnisse werden nicht versioniert werden durch CVS, so dass Sie nicht ein Thema zum Zweig Richtlinien. Solange Sie importieren, leere Verzeichnisse, ist es in Ordnung.InformationsquelleAutor der Antwort Alexander L. Belikoff
Beachten Sie, dass Sie nur verwenden können
cvs add
auf Dateien und Ordnern, die sich innerhalb einer bereits ausgecheckte Arbeitskopie, sonst erhalten Sie die "Cannot open CVS/Entries for reading" Nachricht. Eine Technik für die Schaffung einer neuen "Stamm-Modul" mitcvs add
ist, erläutert in diesem WinCVS FAQ-Punkt: http://cvsgui.sourceforge.net/newfaq.htm#add_rootmoduleWenn Sie auf Windows, TortoiseCVS und WinCVS Unterstützung rekursive addition (und optional commit) von mehreren Dateien in einem einzigen Vorgang. In WinCvs Blick für das makro Hinzufügen>Rekursive Hinzufügen (auto-commit)... In Tortoise verwenden, die Inhalte Hinzufügen-Befehl auf ein Verzeichnis. Beide können Sie auswählen, welche Dateien hinzufügen, und welche keyword-expansion-Modi zu verwenden, für die Sie (meist verwendet für die Definition, welche Dateien sind Binär).
Weitere Infos über rekursive hinzufügen in WinCvs schau mal hier: http://cvsgui.sourceforge.net/newfaq.htm#cvs-add_recursive
Abgesehen davon, dass
cvs import
ist gut geeignet für Masse-Ergänzungen. Allerdings ist der Wegcvs import
ist implementiert in Vanille CVS hat zwei Nachteile (weil es war, die ursprünglich für third-party-code):Wenn Sie CVSNT können Sie vermeiden Nachteile, die durch die Angabe der
-nC
option auf "importieren".-n
ist für die Vermeidung der "Verkäufer" - Zweig und-C
ist für die Erstellung des CVS-Verzeichnisse.InformationsquelleAutor der Antwort Oliver Giesen
Diese Antwort von Mark war nützlich (finden . -type f -print0| xargs -0 cvs add), aber ich löste ein problem, das auftrat, wenn die cvs add versuchen, und fügt seine eigenen Dateien, wie Tag, Einträge, ect.
InformationsquelleAutor der Antwort TGA
Ich denke, das ist das, was ich damals in meinem CVS-Tage:
InformationsquelleAutor der Antwort Mark Harrison
Fügen Sie zunächst alle Verzeichnisse CVS
Dann fügen Sie alle Dateien in den Verzeichnissen CVS
InformationsquelleAutor der Antwort John Meagher
Ich bin mit diesem einfachen shell script, das gestartet werden soll, die bereits ausgecheckten CVS-Verzeichnis. Es wird dummerweise versuchen add/commit alle Dateien und Verzeichnisse, die er findet, auf seine rekursive Suche an, so dass am Ende sollten Sie am Ende mit einer voll verpflichten Baum.
Einfach speichern Sie diese als so etwas wie
/usr/bin/cvsadd
und vergessen Sie nichtchmod +x /usr/bin/cvsadd
.InformationsquelleAutor der Antwort doj
Bereits diskutierten Methoden tun rekursiven Suche, aber es wird scheitern, wenn Sie ausführen, gleiche Aktion wieder (wenn Sie hinzufügen möchten Unterstruktur existierte Baum)
Aus diesem Grund werden Sie brauchen, um zu überprüfen, dass Ihre Verzeichnisse nicht noch hinzu und dann fügen Sie nur Dateien, die nicht Hinzugefügt. Zu tun, dass wir bei der Verwendung der Ausgabe von
cvs up
um zu sehen, welche Elemente wurde nicht Hinzugefügt, noch seinen Willen haben Fragezeichen am Anfang der Zeile.Verwenden wir Optionen
-0
,-print0
und-zZ
sicher sein, dass wir korrekt verarbeitet werden, Leerzeichen in Dateinamen. Wir verwenden auch--no-run-if-empty
zu vermeiden, führen Sie, wenn nichts mehr Hinzugefügt werden müssen.Mit diesem Ansatz vermeiden wir solche Fehler:
und
InformationsquelleAutor der Antwort Broomerr
mache ich gerne (als Verzeichnis müssen hinzufügen)
müssen Sie möglicherweise führen Sie diese mehrere Male(das erste Verzeichnis ist dann für seine Kinder), bis es keinen Ausgang
InformationsquelleAutor der Antwort borrel
Mark ' s-Lösung löst das Leerzeichen-Problem, sondern erzeugt diese Ausgabe:
Um es zu beheben, wird der eigentliche Befehl zu verwenden ist:
InformationsquelleAutor der Antwort Chris Bunch
SVN jeden Fall macht diese triviale Aufgabe, mit einer GUI wie die Schildkröte ist auch einfacher, aber.
Könnte dies ein guter Ort, um zu starten: http://www-mrsrl.stanford.edu/~brian/cvstutorial/
InformationsquelleAutor der Antwort GateKiller