Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 - Fatal编程技术网

svn绊脚石

svn绊脚石,svn,Svn,我在使用svn时会遇到一些问题。这是一份清单 在某个时间点,我所有的命令,如svncommit、svnadd等都可以工作,但是我做了一些事情,如果不以root用户(sudo)的身份运行它们,它们中的任何一个都不会工作。什么具体行动会导致这种情况,以及如何解决 我的另一个网站自己创建了一个images文件夹,其user:group因此变成了www-data:www-data。当我尝试将此文件夹添加到版本控制时,我认为svn未能在映像内创建子目录.svn,因此它输出到映像文件夹的所有子路径都已锁定

我在使用svn时会遇到一些问题。这是一份清单

  • 在某个时间点,我所有的命令,如svncommit、svnadd等都可以工作,但是我做了一些事情,如果不以root用户(sudo)的身份运行它们,它们中的任何一个都不会工作。什么具体行动会导致这种情况,以及如何解决
  • 我的另一个网站自己创建了一个images文件夹,其user:group因此变成了www-data:www-data。当我尝试将此文件夹添加到版本控制时,我认为svn未能在映像内创建子目录.svn,因此它输出到映像文件夹的所有子路径都已锁定,我需要运行清理。清理工作也失败了。它还开始显示带有“~”(波浪号)的images目录,这意味着它在某个点上进行了版本控制,但发生了一些事情。我修复了“在断开锁之前无法提交”和-“无法断开锁”循环问题,如下所示:
    • 已从指向images文件夹的每个目录中删除.svn/lock文件
    • 将图像目录移动到主文件夹,并提交“已删除的图像”
    • 已复制回图像文件夹并执行“svn添加”
但我想知道在上述两种情况下我应该做些什么。我怀疑在案例1中,问题与混乱的文件夹权限有关,但我不知道具体是什么,以及如何修复它。对于未设置适当所有者/组的文件夹,我怀疑我可以采取以下步骤之一:

  • 尝试使用不同的用户和组添加文件夹
  • 将用户:组更改为默认值,添加文件并提交。但不知何故,我希望以一种方式恢复这些变化,使其在未来发挥作用。可能会重新更改权限,但不会更改.svn文件夹的所有者:组

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

您的第一个问题是文件系统权限问题,而不是svn问题。如果您以root用户身份运行svn命令,则很可能您的许多文件和目录最终归root用户所有。运行

chown -R desiredusername .
作为工作副本根目录中的root用户,应该解决问题(请注意,您必须将真实用户名替换为'desiredusername')。尽量避免以root用户身份工作,您将避免许多此类问题。:)

至于第二个问题,如果它是一个包含运行时数据的目录,比如web应用程序存储的数据,我会质疑您是否真的想要对其进行版本设置。我打赌你不会,所以让svn完全忽略那个目录会更好。你可以通过跑步来做到这一点

svn propset svn:ignore imagedirectoryname .
在父目录中。同样,将实际名称替换为“imagedirectoryname”。还要注意,如果父目录中已经有其他被忽略的资源,那么使用svn propset将覆盖它们,因此您希望运行

svn propedit svn:ignore .

相反。

您的第一个问题是文件系统权限问题,而不是svn问题。如果您以root用户身份运行svn命令,则很可能您的许多文件和目录最终归root用户所有。运行

chown -R desiredusername .
作为工作副本根目录中的root用户,应该解决问题(请注意,您必须将真实用户名替换为'desiredusername')。尽量避免以root用户身份工作,您将避免许多此类问题。:)

至于第二个问题,如果它是一个包含运行时数据的目录,比如web应用程序存储的数据,我会质疑您是否真的想要对其进行版本设置。我打赌你不会,所以让svn完全忽略那个目录会更好。你可以通过跑步来做到这一点

svn propset svn:ignore imagedirectoryname .
在父目录中。同样,将实际名称替换为“imagedirectoryname”。还要注意,如果父目录中已经有其他被忽略的资源,那么使用svn propset将覆盖它们,因此您希望运行

svn propedit svn:ignore .

相反。

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


如果您的文件是由web服务器创建的,则可能存在Apache配置为以“www数据”或其他形式运行的问题。在这种情况下,将用户(运行SVN命令)添加到Apache用来编写文件的组可能更简单。

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


如果您的文件是由web服务器创建的,则可能存在Apache配置为以“www数据”或其他形式运行的问题。在这种情况下,将用户(运行SVN命令)添加到Apache用来编写文件的组可能更简单。

似乎您至少有两个不同的用户更新同一工作副本:

  • www数据:www数据(web用户)
  • 您自己的用户

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

看起来您至少有两个不同的用户更新同一工作副本:

  • www数据:www数据(web用户)
  • 您自己的用户

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

是的,我认为最好在某个阶段完全忽略该目录,尽管不是现在。无论如何,到目前为止,我已经对如何从三个答案中的每一个开始有了一些想法,但只能将其中一个设置为接受。是的,我认为最好在某个阶段完全忽略目录,尽管不是现在。无论如何,到目前为止,我已经对如何从三个答案中的每一个着手有了一些想法,但只能将其中一个设置为已接受