2016-06-29 17 views

Antwort

3

Ich spüre terminologische/konzeptionelles Problem ;-)

In Subversion, Dateien Versionsnummern nicht haben (im Gegensatz zu, sagen wir, CVS). Revisionsnummer ist eine Eigenschaft eines Commits.

Jede Datei kann jedoch in einer bestimmten Revision vorhanden sein oder fehlen und einen bestimmten Status aufweisen.

Sagen Sie, gegeben eine Reihe von Revisionen & hellip; → @10@11@12 & hellip ;, eine bestimmte Datei in der @11 ten Revision geändert worden sein könnte, aber Sie sind noch in der Lage den Inhalt dieser Datei zu verweisen jeder dieser Revisionsnummern vor, wie nur zu, dass über @10 geben der "alte" Inhalt, und über @11 und @12 wird der "neue" (und der gleiche) Inhalt — das ist, bis einige zukünftige Revision, @N, in der diese Datei wird wieder geändert werden. Und dann Bezug auf es über einige frühere Revision @P   P < N bezieht sich auf den Inhalt der Datei wie in rev. @11 und unter Verwendung der zukünftigen Revisionsnummern @F   F> N bezieht sich auf seinen Inhalt wie in @N aufgezeichnet.

Die Beantwortung der Frage direkt jetzt:

  • Die Inhalt der Datei ändern kann, wenn und nur wenn sie durch diese Zusammenführung aktualisiert werden.
  • Die Zusammenführung wird definitiv eine neue Revision erstellen, aber das wird die repositoryweite Revision sein, keine Revision dieser bestimmten Datei (oder irgendeiner anderen Datei in der Repositorie).
  • Nach der Zusammenführung, wenn der Inhalt der Datei aktualisiert wurde, bezieht sich die Revisionsnummer des Zusammenführungs-Commits auf den Inhalt der aktualisierten Datei und bezieht sich darauf, beispielsweise mit der Revisionsnummer, die der Zusammenführungs-Festschreibung unmittelbar vorausgeht beziehen Sie sich auf den "vorherigen" Inhalt der Datei.

Gerade falls Sie nicht wissen, können Sie in den Zustand einer bestimmten Datei, wie diese in einer bestimmten Revision mit path/to/the/[email protected] wie in app/js/[email protected] gefunden.

Ist es jetzt klar?

+1

Ja, danke. Daher sollte die Frage besser wie folgt formuliert werden: Wird ein Merge immer ein neues Commit erzeugen und daher die Revisionsnummer erhöhen? – Roland

+1

@Roland, ja. Anders als beispielsweise Git führt eine Zusammenführung in Subversion immer zu einem neuen Commit und damit zu einer neuen Revision. – kostix