我需要列出与根文件夹不同版本的所有文件吗?
不,您不需要这个 - 不要混淆术语“存储库修订”(全局)和“文件修订”(对于任何版本化和在时间文件期间更改)
全局修订是存储库中所有对象在某个时刻的历史片段(它们的修订可能不同,只是因为存储在存储库更改 /revision/可能不会影响每个文件)
文件修订版是该文件在某个时刻的状态(并且自身修订版未更改的文件可能并且可以存在于不同的全局修订版中)
svn ls -v http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
36 lazybadg янв 09 11:45 ./
34 lazybadg 42 мар 24 2012 Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt
32 lazybadg 88 дек 27 2011 Hello.de.txt
33 lazybadg 82 фев 28 2012 Hello.en.txt
36 lazybadg 88 янв 09 11:45 Hello.eo.txt
35 lazybadg 90 янв 09 11:35 Hello.fr.txt
(如您所见,在主干文件的 HEAD 中有不同的修订版 - 没关系)
>svn info http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
...
Revision: 37
...
Last Changed Rev: 36
...
如果你想将工作副本从当前的 Mixed 返回到存储库 r12 的状态,你只有svn up -r 12
或者,如果是 12,如果 HEAD -svn up
流程演示(与上述相同的 URL)
>svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
A trunk\Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt
A trunk\Hello.en.txt
A trunk\Hello.eo.txt
A trunk\Hello.fr.txt
A trunk\Hello.de.txt
U trunk
Checked out revision 37.
混合我们的厕所
>svn up -r 30 Hello.de.txt
Updating 'Hello.de.txt':
U Hello.de.txt
Updated to revision 30.
(我们将文件更新为存储库修订版30 的状态,Hello.de.txt 修订版可能 <= 30)
检查厕所
>svn status
(无输出 - WC 很干净,可以轻松更新)
回归纯HEAD
>svn up
Updating '.':
U Hello.de.txt
Updated to revision 37.
(同样:37 是 repo 的修订版,在这种状态下 Hello.de.txt 可能/并且拥有/自己的修订版 - 根据 ls 是 32 - 但我们不能准确地知道这个修订版,Subversion 为我们存储这些数据并在需要时使用)