我在包含网站的开发中设置了SVN存储库。几天前使用svn import
导入了网站文件。
我在同一台服务器上也是一个非版本化状态的同一个网站,它是一个镜像或我们的实时生产服务器上的站点。这是我们的实时服务器崩溃,我们可以通过FTP快速重新上传所有站点。镜像由rsync处理,并且工作正常。
我的同事目前还没有使用SVN,因为这是一个新流程,而且还没有接受过培训。他们仍然FTP文件,本地编辑和重新上传。因此需要SVN。
我需要保持网站的存储库版本与实时制作版本保持同步,因为他们仍在使用FTP并且可能在我几天前导入网站后进行了更改。
我需要知道的是,如何重新导入已从镜像的非版本化副本更改的文件的存储库中。我不想删除存储库并创建新存储库并导入,因为我想保留当前版本的历史记录。所以我希望实现的是,任何已更改的文件都将作为新版本导入。
我尝试了什么
我尝试在存储库中创建网站的工作副本。然后在工作副本和未版本化的镜像副本之间使用rsync。唯一的问题是从工作副本中删除了所有.svn/
个文件夹,因为它们不存在于镜像(非版本化)版本中。
有没有办法让rsync保留工作副本上的.svn/
目录,即使它们不存在于源站点上?
或者有更好的方法将任何已更改的文件更新到存储库中吗?
答案 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/