【问题标题】:How to remove a tag from tortoise SVN如何从乌龟SVN中删除标签
【发布时间】:2013-05-29 12:02:29
【问题描述】:

我无法从我的标签文件夹中删除错误创建的标签。我尝试将我的工作副本切换到 /tags,然后简单地删除 tags 目录中所需的文件夹。但这会使 svn 文件夹的图标变红,当我尝试提交所做的更改时,它不会让我这样做。

简而言之,我怎样才能从 /tags 中删除一个文件夹,这样当其他人签出到该路径时,他们就不会再看到它们了?

【问题讨论】:

  • “它不会让我” - 这应该有效。有什么错误?我不太了解 Tortoise,但如果你有一个命令行客户端,你可以这样做 svn rm <full URL to tag>
  • 它说:提交失败,提交被预提交钩子(退出代码1)阻止,输出:您没有足够的权限进行此事务。我认为这是因为不允许在标签上提交。
  • 正确:这意味着设置您的服务器的人已经编写了一个脚本来阻止它。你应该和他们谈谈。 (或者如果可以的话尝试命令行操作:这可能不会触发钩子,但我不是 100% 确定。)
  • @Rup 命令行操作也会触发钩子。
  • @Davide 好的,谢谢 - 我认为它可能会绕过它进行某些类别的删除,但我并不惊讶它没有。

标签: svn version-control tortoisesvn


【解决方案1】:

根据您的描述,提交后挂钩将需要临时重命名。完成删除后,可以将挂钩重命名为其原始名称。

【讨论】:

  • 这是正确的。感谢您的管理员进行设置,标签是不可变的。有很多方法可以设置该钩子,但很可能是使用 svnperms 或类似的酱汁 - 您应该考虑创建一个成功通过该钩子的服务帐户,以便将来可以进行此类维护。这样你就不必乱写脚本了。
【解决方案2】:

您收到的错误消息:

Commit failed, Commit blocked by pre-commit hook(exit code 1), 
with output: you don't have enough permissions for this transaction.

关键字被pre-commit hook_blocked。这会阻止您删除标签。要删除标签,您必须找到管理员,让他们删除标签,或者授予您删除标签的权限。

【讨论】:

    【解决方案3】:

    @BradBruce 的建议肯定会奏效,但在我看到这个问题后,我四处寻找更好的方法,并在这个 SO 问题中找到了它:SVN pre-commit hook for avoiding changes to tags subdirectories,特别有用,因为你在 Windows 上。用户@mcdon 提供了a hook script that makes tags immutable,就像您的管理员所做的那样,但还提供了一个钩子(请原谅那里的过载),让您允许一个指定的用户忽略安全措施——这正是您所要求的! (您将在脚本顶部看到您只需将 Administrator 变量设置为您希望指定的用户。)

    【讨论】:

    • 不错,虽然我们只知道他的客户端是 Windows 不一定是他的服务器。
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    相关资源
    最近更新 更多