【发布时间】: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