【问题标题】:Subversion: how to remove property on commitSubversion:如何在提交时删除属性
【发布时间】:2010-12-04 22:36:50
【问题描述】:

我的情况是这样的:我在家里设置了一个 Subversion 服务器,我们也在我工作的公司使用 Subversion。

在工作中,我们使用锁定/编辑/解锁模型(主要是因为我们正在从 Visual SourceSafe 过渡,目前它更容易)。目前,这是通过在所有添加的文件上设置“needs-lock”属性来实现的(使用每台客户端机器上的 SVN 客户端配置文件的 auto-props 部分)。

但是,我不想将此模型用于我的家庭 SVN 服务器(我更喜欢编辑/合并/提交的工作方式),所以目前在我将工作 PC 上的任何内容提交到家庭服务器之后,我有从我添加的任何文件中手动删除需求锁定属性。

有没有一种方法可以将 SVN 客户端设置为仅将此属性应用于提交给特定服务器的文件?还是我走错了路:我应该在工作服务器上使用钩子而不是客户端来添加此属性吗?

非常感谢任何帮助或建议。

编辑:显然,您不能在服务器上执行此操作(或者至少强烈建议您不要这样做)。

【问题讨论】:

  • 太棒了!开始在工作中努力改变这一点!
  • 最糟糕的是,我设置了它...
  • 通常是这样的:-)

标签: svn properties pre-commit-hook


【解决方案1】:

我还编写了一个小的 Windows 批处理文件,以递归方式从任何已设置 needs-lock 属性的文件夹中删除它。将这些行放入一个文本文件中:

svn propdel svn:needs-lock -R -q "%1"
svn commit "%1" -m "Removed needs-lock"

将其保存为remove-needs-lock.bat,并将其位置添加到您的PATH 环境变量中。然后就可以运行了:

remove-needs-lock c:\workingcopyfoldername

然后,所有文件不再需要锁定来编辑。

【讨论】:

    【解决方案2】:

    subversion autoprops 功能在您的 SVN 客户端的 config 文件中配置。还有一个单独的 servers 配置文件支持特定于服务器的设置,但不幸的是你不能在那里覆盖 autoprops。

    我建议你制作两个版本的 config:config.homeconfig.work。然后编写一个 shell 脚本(例如 .bat 文件),通过 config 复制其中的一个。这应该允许您在两种配置之间快速轻松地切换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-17
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      相关资源
      最近更新 更多