【问题标题】:GIT: Modifying files and commit with same date/timeGIT:修改文件并以相同的日期/时间提交
【发布时间】:2015-08-10 15:20:08
【问题描述】:

提交一个内容不同但日期/时间相同的文件似乎并不容易。

以下情况:

  • 创建一个 git 存储库
  • 添加文件“foo.bar”,其中定义了创建/上次写入的日期/时间(例如 2015-01-01 00:00:00)
  • 提交此文件
  • 修改“foo.bar”内容并再次将日期/时间设置为相同的值
  • 调用“git status” => 没有提交,工作目录干净
  • 调用“git commit” => 没有变化;没有什么可提交的

如何强制提交!?

这是一个带有 libGit2Sharp 的复制代码:

using System.IO;
using LibGit2Sharp;
using System;
namespace GitWorkingUpdateProblem01
{
  class Program
  {
    static void Main(string[] args)
    {
      const string repoDir = @".\git-Test";
      Repository.Init(repoDir);
      using (var repo = new Repository(repoDir))
      {
        string fileName = Path.Combine(repo.Info.WorkingDirectory, "foo.bar");
        var dt = new DateTime(2015, 01, 01, 00, 00, 00);
        using (var sw = new StreamWriter(fileName, false))
        {
          sw.WriteLine("UNIQUE-TEXT-1234");
        }
        File.SetLastWriteTime(fileName, dt); File.SetCreationTime(fileName, dt);

        repo.Stage(fileName); repo.Commit("1");

        using (var sw = new StreamWriter(fileName, false))
        {
          sw.WriteLine("UNIQUE-TEXT-4321");
        }
        File.SetLastWriteTime(fileName, dt); File.SetCreationTime(fileName, dt);

        repo.Stage(fileName); repo.Commit("2"); // ==> THROWS: No changes; nothing to commit.
      }
    }
  }
}

【问题讨论】:

    标签: c# git libgit2sharp


    【解决方案1】:

    即使没有libgit2sharp(使用 TortoiseGit 和 msysgit),我也可以重现它。

    这是一个已知问题:
    https://github.com/msysgit/git/issues/312
    https://groups.google.com/forum/#!topic/git-users/Uo9TDppHTSI

    我能够通过运行以下命令来检测更改: git read-tree HEAD 在控制台中。如果您的库允许您运行此(或任意)命令 - 它也可能会有所帮助。

    无论如何,这是故意与 git 作斗争的东西,所以如果可能的话,我建议不要手动更改 ModifiedDate

    【讨论】:

    • 感谢您的回答和链接!我的问题是,我们进行了迁移,有时文件会获得相同的日期/时间......所以我会尝试“强制”“读取树头”......谢谢!
    • Windows 7 SMB2 文件信息缓存的问题甚至可能会变得更糟...technet.microsoft.com/en-us/library/ff686200 希望没有人在使用 SMB2...
    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2017-08-05
    • 2020-07-06
    相关资源
    最近更新 更多