我在节点中运行,该节点应该返回git中最近修改过的(1天)文件列表。该功能基本上像
git diff --name-only $(git rev-list -n1 --before="1 day ago" HEAD)
或
git log --since="1.day" --name-only --oneline
所以,我想验证函数是否完成它应该做的事情。所以,在摩卡测试中,我有:
var tmp = require('tmp');
describe('Git test', function() {
var today = new Date();
var threedays = new Date();
var yesterday = new Date();
threedays.setDate(today.getDate() - 3);
yesterday.setDate(today.getDate() - 1);
beforeEach(function(done) {
tmp.dir({ template: '/tmp/test-XXXXXX', unsafeCleanup: true },
function _tempDirCreated(err, path) {
if (err) { throw err; }
repo = path;
sh.exec('cd ' + repo + '; git init');
sh.exec('touch ' + repo + '/file1');
sh.exec('touch ' + repo + '/file2');
//sh.exec('touch ' + repo + '/file3');
//sh.exec('cd ' + repo + '; git add file3; GIT_COMMITTER_DATE="' +
// threedays.toISOString() +
// '" git commit -m "file3" file3 --date ' + threedays.toISOString());
sh.exec('cd ' + repo + '; git add file2; GIT_COMMITTER_DATE="' +
yesterday.toISOString() + '" git commit -m "FILE2" file2 --date ' +
yesterday.toISOString());
sh.exec('cd ' + repo + '; git add file1; git commit -m "FILE1" file1');
sessionConfig = new Session(repo, repo);
done();
}
);
});
我注意到的是,在我创建git repo之后,仅返回最近修改过的文件的git命令似乎没有返回结果。但是,如果我添加file3(注释部分),该命令将起作用。
我想要最终创建的是具有旧提交和新提交的repo以及仅返回最近修改过的文件的命令。任何建议表示赞赏!
答案 0 :(得分:1)
事实证明,在转换为ISO字符串时,获取“昨天”在处理时区方面存在一些问题。
我将昨天修改为午夜,现在一切正常。