【问题标题】:revert to revision in svn恢复到 svn 中的修订
【发布时间】:2023-03-11 19:20:01
【问题描述】:

有没有办法在保留 cmets 中的更改的同时恢复到某个版本。例如:-

修订版 33:-

public class A{
    private aa;
    private bb;
    private cc;
}

修订版 34:-

public class A{
    private aa;
    private bb;
    private cc;
    private dd;
}

然后还有许多其他的修订。现在,如果我从修订版 34 恢复更改,我希望我的本地副本看起来像这样:-

修订版 120:-

public class A{
     private aa;
     private bb;
     /* changes from revision 34 reverted by XXXX on YYYY
      * Following changes were reverted:-
      *private cc;
     */
}

可以这样做吗?

【问题讨论】:

  • 回滚更改已涵盖many times on SO(我已将其中一个链接作为副本链接)但至于插入 cmets?那应该在提交消息中,而不是您的源代码中,因为它是文件的历史记录,而不是代码或对代码如何/为什么首先工作的解释。 Subversion 不了解编程语言或 cmets,因此开始更改代码是不合适的(因为它可能会中断)。
  • 我在想如果有一个覆盖视图来在代码中显示特定更改的注释会很好。
  • 这就是您的 SVN 历史记录的用途。如果人们需要查看更改,可以使用svn diff。不要用不再需要的已注释掉的杂物弄乱您的代码。

标签: java eclipse svn


【解决方案1】:

这听起来非常接近blame 命令:

显示指定文件的作者和修订信息 [...]。

它将针对文件的每一行显示添加/修改的修订版以及该修订版的作者是谁。示例:

>svn blame http://svn.apache.org/repos/asf/subversion/trunk/README
 841184    striker
 836593     kfogel                Subversion, a version control system.
 836593     kfogel                =====================================
 836593     kfogel
 841184    striker $LastChangedDate$
 836593     kfogel
 841437    sussman Contents:
 841437    sussman
 841437    sussman      I. A FEW POINTERS
 841437    sussman     II. DOCUMENTATION
 841437    sussman    III. PARTICIPATING IN THE SUBVERSION COMMUNITY
 841437    sussman     IV. QUICKSTART GUIDE
 849422    sussman      V. CONVERTING FROM CVS

如果您使用 TortoiseSVN,您可以通过工具提示查看每一行的提交消息:

tortoiseproc /command:blame /path:http://svn.apache.org/repos/asf/subversion/trunk/README

注意:此命令的一个限制是它不会向您显示已删除的行;只有在您指责的版本中可见的行才会显示。

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 2017-09-16
    • 2020-06-04
    • 1970-01-01
    • 2010-12-11
    • 2010-11-15
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多