2009-04-27 34 views
1

我在使用svn时遇到了一些问题。这里是一个列表svn绊脚石

  • 在某个时间点,像SVN我的所有命令提交,SVN添加等工作,但我做了一件让他们没有将不运行它们作为根用户(须藤)工作。具体的行为会导致这种情况,以及如何解决这个问题?
  • 我的其他网站自己创建了一个图片文件夹,其用户:group成为www-data:www-data。当我试图将此文件夹添加到版本控制时,我认为svn无法在图像内创建一个子目录.svn,因此它输出了图像文件夹的所有子路径都被锁定,我需要运行清理。清理也失败了。它也开始用一个'〜'(波浪号)来显示图像目录,这意味着它在某个时刻被版本化了,但是发生了一些事情。我固定在“不能犯,直到决裂locks'-和'cant破锁”循环问题如下:
    • 删除的.svn /锁定的文件从各个通往图像的目录文件夹
    • 移动图像目录主文件夹,并承诺“删除图片”
    • 复制回的图像文件夹并没有使用“svn添加”

但我想知道我应该在上述各两个都做案例。我怀疑在案例1中,问题与搞砸的文件夹权限有关,但我不知道具体是什么,以及如何解决它。我怀疑我可以采取以下措施之一为不具备相应的业主的文件夹/组设置:

  • 尝试做“sudo的添加folder_with_different_user_and_group”
  • 更改用户:组为默认值,添加文件和承诺。但不知何故,我想以这样的方式恢复这些变化,以使其在未来可以工作。可能更改权限但不更改所有者:.svn文件夹的组?

什么是在上述每种情况下使用svn的最佳方式,以及如何在这种情况发生时成功地解锁等等?

回答

1

你描述的是权限问题,而不是SVN问题。我建议了解一下Unix文件权限及其含义,例如here

如果您的文件是由Web服务器创建的,那么您可能会遇到Apache配置为以“www-data”或其他方式运行的问题。在这种情况下,将用户(运行SVN命令)添加到Apache用于写入文件的组可能会更加简单。

1

你的第一个问题是文件系统的权限问题,而不是svn问题。如果以root用户身份运行svn命令,很可能会有一些文件和目录最终归root所有。在工作拷贝根目录下运行

chown -R desiredusername . 

的根应该解决的事情(请注意,你必须替代“desiredusername”真正的用户名)。尽量避免以root身份工作,并且您将避免很多这些问题。 :)

至于第二个问题,如果它是一个包含运行时数据的目录,就像您的Web应用程序存储的东西一样,我会质疑您是否真的想要版本化。我敢打赌,你不这样做,所以你最好让svn完全忽略这个目录。您可以通过运行

svn propset svn:ignore imagedirectoryname . 

在父目录中。再次,将实际名称替换为'imagedirectoryname'。还要注意的是,如果你已经有其他被忽略的资源的父目录,用svn propset命令将覆盖他们,所以你要运行

svn propedit svn:ignore . 

代替。

+0

是的,我认为最好在某个阶段完全忽略目录,尽管不是现在。无论如何,已经从目前为止的三个答案的每一个中获得了一些想法,但只能设置一个被接受 – umar 2009-04-27 09:25:05

2

好像你至少有2个不同的用户更新同一个工作拷贝:

  • WWW的数据:WWW的数据(网络用户)
  • 自己的用户

这是一个问题。你可以对所有的svn操作使用root(即sudo) - 它不干净,但是可以工作。