Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN将导入的文件更改为工作副本_Svn_Version Control - Fatal编程技术网

SVN将导入的文件更改为工作副本

SVN将导入的文件更改为工作副本,svn,version-control,Svn,Version Control,我已经创建了一个svn存储库,并使用 svnadmin create repo svn mkdir trunk -m "drunk" svn import /home/my/folder file://home/my/svn/repo/trunk 我每天从其他地方同步“/home/my/folder” 我还用 svn co svn://myhost/repo 但是,当我对我的工作副本执行svn更新时,我不会从/home/my/文件夹中获得rsynced更改。如何更正此问题?首先:不要将文件:

我已经创建了一个svn存储库,并使用

svnadmin create repo
svn mkdir trunk -m "drunk"
svn import /home/my/folder file://home/my/svn/repo/trunk
我每天从其他地方同步“/home/my/folder”

我还用

svn co svn://myhost/repo

但是,当我对我的工作副本执行svn更新时,我不会从/home/my/文件夹中获得rsynced更改。如何更正此问题?

首先:不要将
文件://
svn://
混合使用。在两个系统上使用相同的协议,即使该文件是系统的本地文件。否则,您可能会意外更改Subversion存储库中文件和文件夹的权限,这将对其他所有人造成严重破坏

当您导入一个目录(就像您所做的那样)时,该目录不会成为Subversion工作目录。您必须执行签出以创建工作目录,并在Subversion中使用该目录

我希望我正确地理解了你的问题

另一个系统上的工作副本将显示您添加的文件。正确吗?

首先,不创建工作副本

您需要通过在将要获取rsync更新的机器上执行签出来制作工作副本


您还需要在rsync完成后提交该工作副本,否则您的存储库将不会更新,在另一台机器上执行更新也不会得到任何结果。

我想我没有正确解释,我正在使用svnserve在第一台机器上托管一个svn repo。您指的是两个repo?或者,您的回购协议在第一台机器上,您通过
svn://
协议在第二台机器上访问它。如果你能做到这一点,你就可以在第一台机器上运行
svnserve
,这样你也可以在上面使用
svn://
协议。你是在rsync之后提交更改吗?否则就没有什么可更新的了。不,我没有这样做,我假设如果我的svn repo引用了该目录,它应该跟踪对该目录的所有更改?请参阅我的答案。导入后,您需要将/home/my/folder制作成一个工作副本(删除内容并签出),然后在每次rsync之后进行提交。奇怪的是,当我第一次执行svn co时,它也会在工作副本中获取导入的文件(无co和提交)?导入时,您将副本放入存储库。因此,在另一个地点进行co将获得该副本。在您提交任何工作副本之前,存储库将不会更新。另外,为什么我不在trunk dir中使用ls来查看存储库中导入的文件?嘿,如果您能写下实现这一点的说明,这对每个svn noob来说都是非常有益的。:)谢谢在我的回答中点击上面的svn导入链接。它会出现在svn手册中。非常好的使用svn的文档。