Zawsze można użyć parametru -r
odnosić się do określonej wersji. W takim przypadku można również użyć pinezki zmiany wersji @rev
, aby upewnić się, że odwołujesz się do układu wersji Subversion w konkretnej wersji. Poniższa utworzy tag od tułowia na rewizji 577 i nazywają ten tag REV-1.2
:
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2
Jeżeli nie masz jeszcze trunk
, branches
i tags
katalogi, musisz przenieść swoją pracę w celu utworzyć niektóre:
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags
$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/
$ # Whoops. I should have done the tagging when I had a chance.
$ #Oh well, we'll use the `@rev` pinning:
$ svn -r557 cp https://subversion.assembla.com/svn/[email protected] \
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2
Subversion nie implementuje tagging i rozgałęzienia wyjątkiem kopii. Nie jest to niezwykłe. Perforce wdraża rozgałęzienia w ten sam sposób. W rzeczywistości, gdy pojawi się stosowanie do niego, to działa naprawdę dobrze:
- Łatwo zobaczyć ważne gałęzie i tagi (po prostu zrobić
svn ls
po prawej katalogu
- pełną historię tagów i gałęzi Łatwo je zobaczyć: możesz zobaczyć, kto wprowadził zmianę, kiedy, dlaczego itp.
- Wyświetlana jest pełna historia tagu lub gałęzi. Jeśli ktoś zmieni tag lub gałąź, zobaczysz, kto zrobił to bardzo wyraźnie.
- Zniechęca to rodzaj rozgałęziania, jaki widzisz w wielu innych systemach kontroli wersji, gdy programiści wybierają i wybierają różne gałęzie i pnia, które mają rozgałęziać lub oznaczać. To sprawia, że śledzenie historii jest bardzo trudne. Schemat Subversion zachęca do myślenia o gałęziach i tagach jako mających wpływ na wszystkie pliki w projekcie.