0

我将创建一个分支来处理我的代码,因为主干以难以想象的方式搞砸了(但这不是问题)。如何定期备份我创建的分支。它将位于我的公司服务器上,我不确定定期将分支检出到新文件夹是否相当于“备份我的分支”?

这与只是去 Repo 并将文件夹复制到我的桌面有什么不同吗?.svn 文件是否包含我保留分支历史所需的所有内容,并且能够恢复到以前的版本?

谢谢!

更新 **

我问的原因是因为我不知道有一天是否有人会来删除分支。

4

5 回答 5

1

无需备份分支,Subversion 是一个版本控制系统。当发生更改时,您知道是谁做的,他们何时做的,他们改变了什么,您甚至可以撤消他们的更改。这就是版本控制系统所做的。

于 2011-03-03T17:37:23.023 回答
1

因此 Sketh Chobo

更新**

我问的原因是因为我不知道有一天是否有人会来删除分支。


在 Subversion 中,您所做的一切都是可逆的。即使您删除了一个分支,您也可以通过在删除之前将其从修订版中复制回来来取回它。

例如,假设您的分支在修订版 100 中被删除:我们将使用@99

$ svn cp -r99 svn://svn/branches/my_branch@99 svn://svn/my_branch

而且,现在它回来了!

如果你真的想保护你的分支,你可以使用 pre-commit 钩子来防止人们修改文件夹和文件。我有一个我在这里使用的。

于 2011-03-03T19:26:56.653 回答
0

你可以这样想你的 svn 服务器:

每次更改服务器的状态时,它都会创建该状态的快照,并用修订号标识。

任何时候您想引用该状态时,您都可以查看该修订号。

现在,这并不是它的工作原理——如果它为每次更改创建一个完全独立的快照,那么在空间方面(也可能在时间方面)效率将非常低。但是,它旨在让您像这样做一样操作,并且确实为您重新创建它。

所以你的备份包括这样做

打开一个文档(我们称之为 backup.txt)。

在存储库上执行 SVN INFO 以获取当前修订号

写下“备份”,你的日志上写着“我在这个日期做了备份。要获得备份状态,我只需检查日志中的修订。”

基本上,您所要求的不仅是 subversion 内置的,而且确实是subversion 的目的。:)

于 2011-03-03T17:44:20.837 回答
0

.svn 文件是否包含我保留分支历史所需的所有内容,并且能够恢复到以前的版本?

不会。.SVN 文件夹不保留任何历史记录。所有历史记录都在服务器上的存储库中,这就是您应该备份的内容。

于 2011-03-03T17:48:31.947 回答
0

你真的不需要备份你的分支。修订控制保留所有修订。任何时候,你想签出一个版本,你可以用版本号运行checkout 命令

svn checkout -r 911 svn://url/to/file/or/dir/tobe.checked/out to/this/location/on/my/machine

参考:http ://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.checkout.html

于 2011-03-03T17:49:37.997 回答