2009-06-10 15 views
0

Dire que j'ai 3 fichiers foo.txt, bar.txt et moo.txt tout à la révision 1.numéros de SVN et de révision

Dire que je commets foo.txt et bar.txt dix fois. Donc, ils sont à la révision 1.10. Puisque dans SVN il y a une seule révision, moo.txt doit aussi être à la révision 1.10. Maintenant, si je vois l'histoire de moo.txt, puis-je voir l'historique des commits de 1 à 10?

La raison pour laquelle je pose cette question est que je disais à mon ami comment CVS est sucky par rapport à SVN. Il est un grand fan de CVS. Alors il m'a dit que les numéros de révision CVS sont spécifiques au fichier, il est très facile pour lui de ramener un seul fichier à un certain statut (puisque l'historique du fichier unique ne contient pas les validations faites aux autres sections du projet). Puisque je mets toujours à jour mon projet entier vers une version précédente (pas un seul fichier), je n'ai jamais rencontré cette situation. Donc, je veux savoir comment cela est géré dans SVN?

Répondre

2

Lorsque vous consultez l'historique d'un fichier, vous ne verrez que les commentaires et les modifications pour les validations faites qui ont inclus ce fichier, mais les numéros de révision ne seront pas nécessairement consécutifs. Toutefois, vous pouvez toujours rétablir un seul fichier à un numéro de révision spécifique sans affecter les autres fichiers.

E.g.

deux fichiers:
foo.txt et bar.txt

1: checkin foo.txt
2: checkin foo.txt & bar.txt
3: checkin foo.txt
4: checkin bar.txt
5: checkin foo.txt
6: barre d'enregistrement.txt

Si vous regardez l'histoire de la barre, vous verrez:

6:
4:
2:

Et vous toujours être en mesure de revenir bar.txt jusqu'à la révision 2 sans affecter foo.txt

si vous regardez l'histoire de foo, vous verrez:

5:
3:
2:
1:

Si vous regardez l'histoire du répertoire entier, vous verrez tous les commits. Avoir un numéro de version large du référentiel signifie simplement que vous pouvez indiquer l'ordre dans lequel les choses ont été modifiées à partir de leurs numéros de révision. Cela n'affecte pas votre capacité à afficher les historiques ou à restaurer les fichiers.

0

Ceci est assez facile à tester. Si vous affichez l'historique d'un seul fichier, il n'inclura que les révisions dans lesquelles il a joué un rôle. Si elle n'a pas été modifiée, cette entrée de journal n'apparaîtra pas. Vous pouvez facilement annuler des révisions spécifiques sur un seul fichier ou groupe de fichiers.

+0

Je n'ai pas de SVN mis en place avec moi pour les tests. Utilisez CVS au travail. Sinon, n'aurait pas demandé. Merci. – Abhi

+0

Il est incroyablement simple de mettre en place un repo SVN à des fins de test - il suffit d'installer le client et faire un "importer" –

+0

Cool. Je vais essayer. – Abhi

0

SVN utilise un numéro de révision à l'échelle du référentiel qui est incrémenté à chaque validation. Lorsque vous affichez le journal d'un seul fichier, vous ne verrez que la révision de ce fichier, mais il y aura des lacunes dans la numérotation des versions.

0

Vous pouvez penser comme moo.txt ont fait déposer des révisions spécifiques, son juste qu'ils ont des lacunes, par exemple, les révisions de moo.txt sont 1, 10, 11, 18, etc.

En réalité, cette n'est pas plus difficile à traiter que si c'était 1, 2, 3, 4, 5 mais a l'avantage supplémentaire de signifier quelque chose pour l'ensemble du dépôt.

1

L'historique SVN peut être affiché par fichier ou par répertoire, de sorte que vous verrez l'historique de tous les fichiers correspondant au filtre que vous recherchez. Si vous ne visualisez que l'historique de moo.txt, vous ne verrez que ses changements (ce qui dans votre exemple serait probablement 3-12). Il est également important de souligner que SVN autorise les validations atomiques de plusieurs fichiers, de sorte que vous avez peut-être engagé ensemble foo.txt et moo.txt en une seule modification à la version 2. Dans ce cas, vous devrez également voyez ceci dans l'historique des changements de moo.txt. Vraiment cependant, je pense que la bonne réponse est juste d'installer SVN et de le tester par vous-même. Ensuite, vous comprendrez mieux comment fonctionne l'historique des modifications.

Questions connexes