如何使用未版本控制的副本中已更改的文件更新存储库中的网站文件

时间:2010-01-20 15:57:31

标签: linux svn version-control

我在包含网站的开发中设置了SVN存储库。几天前使用svn import导入了网站文件。

我在同一台服务器上也是一个非版本化状态的同一个网站,它是一个镜像或我们的实时生产服务器上的站点。这是我们的实时服务器崩溃,我们可以通过FTP快速重新上传所有站点。镜像由rsync处理,并且工作正常。

我的同事目前还没有使用SVN,因为这是一个新流程,而且还没有接受过培训。他们仍然FTP文件,本地编辑和重新上传。因此需要SVN。

我需要保持网站的存储库版本与实时制作版本保持同步,因为他们仍在使用FTP并且可能在我几天前导入网站后进行了更改。

我需要知道的是,如何重新导入已从镜像的非版本化副本更改的文件的存储库中。我不想删除存储库并创建新存储库并导入,因为我想保留当前版本的历史记录。所以我希望实现的是,任何已更改的文件都将作为新版本导入。

我尝试了什么

我尝试在存储库中创建网站的工作副本。然后在工作副本和未版本化的镜像副本之间使用rsync。唯一的问题是从工作副本中删除了所有.svn/个文件夹,因为它们不存在于镜像(非版本化)版本中。

有没有办法让rsync保留工作副本上的.svn/目录,即使它们不存在于源站点上?

或者有更好的方法将任何已更改的文件更新到存储库中吗?

2 个答案:

答案 0 :(得分:1)

您不能只将已更改的源代码树复制到工作副本上,然后提交吗?

此外,您可以将--exclude ".svn"传递给rsync。阅读rsync exclusion here

rsync中还有--cvs-exclude参数,但您必须检查您的rsync版本是否支持svn,因为该补丁非常新。

答案 1 :(得分:1)

rsync -azcC --exclude=.svn /path/to/unversioned/source/ /path/to/working/copy/