如何从subversion存储库获取文件的所有版本的副本?

时间:2011-03-18 19:52:24

标签: svn tortoisesvn cornerstone

我们添加了一个自定义字体(ttf)到subversion存储库。我们检测到某些字符存在问题,并且不确定问题何时出现。该文件当然是一个二进制文件,因此没有文本差异可供比较,我们只需要将其与其他项目文件一起包含并对其进行版本化。无论如何,我想从存储库中检索文件的所有版本。我可以访问TortoiseSVN(适用于Windows)和Cornerstone(适用于Mac);但是,我也很习惯使用终端。如何为每个检查到subversion的字体版本检索ttf文件?

2 个答案:

答案 0 :(得分:1)

这有点粗糙,我确信那里有更优雅的解决方案,但它确实有效。适当地设置GRAB_FILE和GRAB_FROM_REV。

$ mkdir versions
$ GRAB_FILE="MGSource.h"
$ GRAB_FROM_REV=700
$ for i in `svn log -r$GRAB_FROM_REV:HEAD "$GRAB_FILE" | grep -o '^r[0123456789]*'`; do svn up "$GRAB_FILE" -$i; cp $GRAB_FILE versions/"$GRABFILE.$i.h"; done  

Updated to revision 768.
U    MGSource.h
Updated to revision 770.
U    MGSource.h
Updated to revision 804.
U    MGSource.h
Updated to revision 821.

$ ls -l versions/
total 56
-rw-r--r--  1 me    staff  1599 Mar 18 21:03 MGSource.r709.h
-rw-r--r--  1 me    staff  1705 Mar 18 21:03 MGSource.r759.h
-rw-r--r--  1 me    staff  1891 Mar 18 21:03 MGSource.r760.h
-rw-r--r--  1 me    staff  1882 Mar 18 21:03 MGSource.r768.h
-rw-r--r--  1 me    staff  2009 Mar 18 21:03 MGSource.r770.h
-rw-r--r--  1 me    staff  2009 Mar 18 21:03 MGSource.r804.h
-rw-r--r--  1 me    staff  1942 Mar 18 21:03 MGSource.r821.h

答案 1 :(得分:1)

如果你正在使用TortoiseSVN,你可以轻松搞定:

显示字体文件的日志。您将看到特定文件已更改的修订列表。右键单击任何这些修订,然后从上下文菜单中选择“另存为...”,您将获得该修订版中的文件。