1

我在公司机器上工作,无法更改 Windows 用户名的名称。我在本地运行 TortoiseSvn,我想将提交更改为我的名字。我不想右键单击每个提交并手动更改名称。有没有办法做到这一点?我知道有几个关于此的线程,但没有解决方案。

4

1 回答 1

2

是的,有办法做到这一点,但你可能做不到。

在 Subversion 中,有两种类型的属性:与文件本身一起修订的文件属性,以及不附加到文件而是附加到修订的修订属性。这些没有版本控制。

有几个标准修订属性:

  • svn:log:这是提交注释。
  • svn:author:这是提交的用户。
  • svn:date:这是提交的日期和时间戳。

您可以使用以下命令更改任何这些修订属性:

$ svn pset svn:log --rev-prop -r193 "The commit comment for revsion #193 is this!"

用 PowerShell 或 Python 或 Perl 编写脚本来一次对一大堆修订执行此操作相当简单。但是,您可以想象如果您可以随心所欲地更改任何 Subversion 修订版的日期、作者身份和提交评论,这会造成什么样的破坏。

因此,为了能够使用rev-prop更改,存储库必须具有允许您执行此操作的挂钩。这是您必须有一个钩子才能显式允许允许的操作的唯一情况。而且,当然,您是否有能力创建这样的钩子是非常值得怀疑的。


现在,我假设您在谈论已经提交的修订。如果您正在共享一个工作副本,并且您进行了更改,然后与其他人一起提交了这些更改,那么您使用的 Subversion 完全错误。

每个用户都应该有自己的工作目录,他们可以在其中进行更改。这样,存储库将记录谁做了提交而没有任何恶作剧。


如果你只是想用 Windows 名称以外的名称从存储库中签出,可以将身份验证保存在本地计算机上,Subversion 将在从该存储库中签出时使用该授权。

我相信授权存储在 %HOMEPATH%.subversion\auth 目录下。找到授权文件并删除它应该不会花费太长时间。然后,下次结帐时,您需要指定用户和密码并保存凭据。之后,这就是 TortoiseSVN 在您使用该存储库时默认使用的内容。


这是三个不同的答案,涵盖了使用 Subversion 和凭据的三种不同情况。如果我没有回答正确的场景,请编辑您的问题并准确解释您的意思以及您想要完成的任务。你描述的情况不是很清楚。

于 2012-09-14T02:17:07.487 回答