svn绊脚石
我在使用svn时会遇到一些问题。这是一份清单svn绊脚石,svn,Svn,我在使用svn时会遇到一些问题。这是一份清单 在某个时间点,我所有的命令,如svncommit、svnadd等都可以工作,但是我做了一些事情,如果不以root用户(sudo)的身份运行它们,它们中的任何一个都不会工作。什么具体行动会导致这种情况,以及如何解决 我的另一个网站自己创建了一个images文件夹,其user:group因此变成了www-data:www-data。当我尝试将此文件夹添加到版本控制时,我认为svn未能在映像内创建子目录.svn,因此它输出到映像文件夹的所有子路径都已锁定
- 在某个时间点,我所有的命令,如svncommit、svnadd等都可以工作,但是我做了一些事情,如果不以root用户(sudo)的身份运行它们,它们中的任何一个都不会工作。什么具体行动会导致这种情况,以及如何解决
- 我的另一个网站自己创建了一个images文件夹,其user:group因此变成了www-data:www-data。当我尝试将此文件夹添加到版本控制时,我认为svn未能在映像内创建子目录.svn,因此它输出到映像文件夹的所有子路径都已锁定,我需要运行清理。清理工作也失败了。它还开始显示带有“~”(波浪号)的images目录,这意味着它在某个点上进行了版本控制,但发生了一些事情。我修复了“在断开锁之前无法提交”和-“无法断开锁”循环问题,如下所示:
- 已从指向images文件夹的每个目录中删除.svn/lock文件
- 将图像目录移动到主文件夹,并提交“已删除的图像”
- 已复制回图像文件夹并执行“svn添加”
- 尝试使用不同的用户和组添加文件夹
- 将用户:组更改为默认值,添加文件并提交。但不知何故,我希望以一种方式恢复这些变化,使其在未来发挥作用。可能会重新更改权限,但不会更改.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操作-它不是干净的,但可以工作。是的,我认为最好在某个阶段完全忽略该目录,尽管不是现在。无论如何,到目前为止,我已经对如何从三个答案中的每一个开始有了一些想法,但只能将其中一个设置为接受。是的,我认为最好在某个阶段完全忽略目录,尽管不是现在。无论如何,到目前为止,我已经对如何从三个答案中的每一个着手有了一些想法,但只能将其中一个设置为已接受