【问题标题】:Git-Svn: Retain commit timestamp after dcommitGit-Svn:在 dcommit 之后保留提交时间戳
【发布时间】:2012-05-13 20:04:58
【问题描述】:

我已经使用 Git 和 Git-Svn 大约一年了,不知何故只是注意到,在 dcommit 之后,我的提交历史被保留了,但时间戳没有。换句话说,每个 git commit 条目都会被保留,但在 Svn 中,每个提交都有相同的时间戳(或多或少)。

对我来说,一次远程工作一天左右并在此期间进行任意数量的提交并不罕见。理想情况下,我希望我的 svn 日志能够反映我向 git 提交这些提交的时间,而不是提交(连同任何其他提交)是 dcommitted 到 svn 的时间。这可能吗?

谢谢。

【问题讨论】:

    标签: git git-svn


    【解决方案1】:

    当 git-svn 创建一个 Subversion 提交时,它所做的事情与您通常使用 Subversion 创建一个提交所做的事情大致相同。这意味着 Subversion 时间戳将是运行 git svn dcommit 操作的时间。

    即使您可以更改提交时间戳,这也可能不是您想要做的。通常人们会期望 Subversion 中的提交时间戳遵循按时间顺序递增的顺序,并且在存储库中看到“回溯”时间戳可能会令人困惑。

    【讨论】:

    • 很公平。在这种情况下,我碰巧独自在一个项目上工作,但你说得对,在团队情况下这会令人难以置信的混乱。特别是因为每个 git 提交都通过 rebase 应用于任何早期更改。
    【解决方案2】:

    如果您在服务器上使用SubGit 是可能的。它尝试尽可能保留 Git 提交日期(不幸的是,SVN 存储库有一个内部限制,即日期应该按时间顺序排列,否则某些二进制搜索算法将无法正常工作)。 我知道没有其他解决方案可以修改 svn:date 在同一个提交事务中。 Git-svn 使用 libsvn SVN 引擎,据我所知,它不允许此类 svn:date 修改(仅在创建修订时的事务之后并且您知道其编号)。

    【讨论】:

      【解决方案3】:

      changing the svn:date property 应该绝对有可能,但我不认为 git-svn 实现了这一点。

      虽然是 git-svn-replay does implement this,但它的用途与 git-svn 截然不同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 2015-04-09
        • 2010-09-16
        相关资源
        最近更新 更多