使用git-restoremtime脚本,可以根据提交消息中的日期修改从git存储库检出的文件的修改时间。
但是,如何使目录的mtime看起来直观,确定且一致?
我认为每个目录最有意义的是将其mtime设置为最新提交的时间,触及此目录或其任何子目录中的任何类型的文件。这种递归的mtime传播听起来合理吗?用git很容易吗?
答案 0 :(得分:2)
事实证明,脚本很容易修改,以支持为目录确定mtime。
https://github.com/cnst/git-tools/commit/89d09da9f362651ce9a0ca66362913c09e6b57cb https://github.com/cnst/git-tools/commit/b20207dc8fd9b791b8371dab94e98aca0a8412f6
与https://stackoverflow.com/a/13284558/1122270集成的最短片段如下:
dirlist = dict()
...
dir = file
while dir:
dir = os.path.dirname(dir)
if dir in dirlist:
if dirlist[dir] < mtime:
dirlist[dir] = mtime
else:
if os.path.isdir(dir):
dirlist[dir] = mtime
...
for file, mtime in dirlist.iteritems():
try:
os.utime(os.path.join(workdir, file), (mtime, mtime))
touches += 1
except Exception as e:
logger.error("ERROR: %s\n", e)
errors += 1
答案 1 :(得分:1)
使用git
是否容易
这与Git(或其他分布式 VCS)无关,只需doesn't record any kind of timestamp
因此,虽然您的策略在您的上下文中是有意义的,但它只会是在本地存储库中应用的脚本的结果,并不保证可以在任何克隆中复制。