2009-07-03 11 views
2

Als ich zum ersten Mal herausgefunden, dass Mercurial Dateien und nicht Verzeichnisse verlief, war ich ein bisschen enttäuscht. (Dies bedeutet, dass Sie im Repo kein leeres Verzeichnis darstellen können.) In der Praxis scheint dies jedoch kein Problem zu sein und erleichtert mir einige Dinge. Wie wäre es mit anderen SCM-Systemen? (Diesen Post bearbeiten, um sie hinzuzufügen.) Welche Vorteile oder Nachteile haben Sie gefunden, indem Sie Verzeichnisse nicht verfolgen? (. Jeder separat in einer Antwort bitte)SCM/VCS: Tracking-Verzeichnisse

Do Spur Verzeichnisse:

  • Subversion
  • Bazaar/bzr
  • PlasticSCM
  • Accurev
  • Clearcase
  • (fügen Sie eins hinzu!)

Sie NICHT Spur Verzeichnisse:

  • Mercurial/hg
  • git
  • Perforce
  • (add one!)

Antwort

2

Dies ist aus der Mercurial book:

Leere Verzeichnisse sind selten nützlich, und es gibt nicht aufdringliche Problemumgehungen , die Sie verwenden können, um einen entsprechenden Effekt zu erzielen. Die Entwickler von Mercurial empfanden somit, dass die Komplexität, die erforderlich wäre, verwalten leere Verzeichnisse war nicht den begrenzten Nutzen dieses Feature bringen würde.

Ich denke, es sagt so ziemlich alles. Wenn Sie ein VCS entwerfen, treffen Sie einige Entscheidungen. Im Falle von Mercurial führen die Entscheidungen über den Umgang mit Dateien (die per se wahrscheinlich als gut zu bezeichnen sind) zu diesem kleinen Vorbehalt.

Es kann definitiv als ein Fehler betrachtet werden, jedoch ein kleiner. Andere VCS haben andere Fehler, die von anderen Entscheidungen herrühren (z. B. die ständig benötigten Aufräumarbeiten in git, die git nicht weniger wert machen).

+0

ich weiß, es gibt Vor- und Nachteile ist diese Frage darum, herauszufinden, wie diese Abwägungen echte Benutzer in realen Projekten beeinflussen die Art von SO bedeutet, dass wir sehen können, was. Themen betreffen (oder zumindest sind wichtig) diese Gemeinschaft mehr (durch Stimmen) –

+0

Das ist gut, und meine Antwort wird wahrscheinlich auf dem Boden bleiben.Ich bin völlig in Ordnung damit, ich dachte nur, es war gut, darauf hinzuweisen. Ich weiß, es ist keine echte Antwort auf deine Frage, aber es ist eine CW, also habe ich genommen die Freiheit :-) – balpha

+0

Danke für die Teilnahme, wollte nur nicht, dass Sie die Frage falsch verstehen, wenn Sie sich die Zeit nehmen zu antworten. :) –

1

Kein Wunder, dass git keine leeren Verzeichnisse tut. Es überraschte mich, dass bzrtut verfolgen sie jedoch.

Eine einfache Problemumgehung, die seit CVS days besteht, besteht darin, eine Platzhalterdatei im Verzeichnis zu erstellen und diese zu verfolgen. Alternativ können Sie das leere Verzeichnis im Build-Prozess erstellen, was sowieso fast immer das Richtige ist.

+0

+1 tun es im Build. Ich suchte nach einer Semi-Standard-Methode zum Verfolgen von Verzeichnissen in Mercurial. Es stellte sich heraus, dass es eine viel elegantere Lösung war. –

1

Ich habe das Problem auch mit leeren Verzeichnissen konfrontiert.Das Problem bei der Verwendung von Platzhalterdateien besteht darin, dass Sie sie erstellen und löschen müssen, wenn sie nicht mehr benötigt werden (weil später Unterverzeichnisse oder Dateien hinzugefügt wurden. Bei großen Quellbäumen kann die Verwaltung dieser Platzhalterdateien mühsam und fehlerbehaftet sein) . anfällig

0

Anzahl: DO Spur Verzeichnisse:. Plastic SCM, Accurev

+0

Es ist Gemeinschaft Wiki, Sie können sie selbst hinzufügen. Ich meine das nicht, um so gereizt zu klingen. –