有没有办法使用svn revert返回到特定文件的以前状态,同时在svn中保留正确的作者信息(以便显示的作者是进行原始更改的作者,而不是执行还原的作者)?
发布于 2011-06-28 23:12:23
Subversion在服务器中维护项目的历史记录。这段历史应该是不可变的,过去发生的事情将留在服务器中。因此,“还原”存储库并不是真正撤销过去,而是用文件的较旧副本替换“当前”副本。恢复后,必须提交更改才能继续。
这意味着,如果您“提交”较旧的文件,则svn的错误信息将是提交人的信息。如果您希望该信息不同,则必须执行以下任一操作:
请注意,创建旧版本文件的实际人员并不是在当前上下文中创建它们的,因此,如果您决定将文件“还原”到几天/几周/几个月前编写它们的状态,那么他们不是破坏构建的人。在现实中,you将是破坏构建的人,因此应该受到指责。
也就是说,如果你发现将责任转移到其他地方的好处超过了增加的困惑,那么要做#1,你有几个选择。最简单的方法是在可通过SSH访问的SVN服务器上设置一组用户帐户。因为您控制帐户,所以您可以ssh到任何特定的用户。由于您要在不知道用户svn密码的情况下结帐和更新,因此需要使用文件URL,这将绕过HTTP / HTTPS / SVN+SSH密码检查。由于您有足够的权限执行所有这些操作,因此您将能够将这些用户添加到访问实际SVN存储库的组中。
要完成#2,您必须熟悉SVN存储日志属性的内部体系结构;但老实说,我不确定它是否完全可以实现。我怀疑它将从更深层次的检查开始
svn propedit -r N --revprop svn:author authorName URLhttps://stackoverflow.com/questions/6508280
复制相似问题