编辑:
请参考Danny Lin的git-store-meta作为下面所述版本控制元数据问题的一种解决方案。截至2015年5月13日,我还没有测试过它。
原始问题:
git commit
输出中的create|delete mode ...
行表示某种元数据控制吗?(和/或者,这些行在一般情况下表示什么?)这些似乎是类Unix文件权限代码/表示,尽管我不确定-确切的映射是什么,但更大的问题是:git是否使用这些代码/设置/值? git是否试图利用这些保存的代码以任何方式来证明有助于解决metadata问题,如我的超级用户问题"如何重用/扩展etckeeper的元数据引擎,以使其对非/etc文件系统进行git控制,或者通过本机方式扩展git具有此功能?"? 我知道git不能控制所有文件系统元数据。
[Git显然已经控制了文件的“可执行属性/权限”(对大多数操作系统都是可移植的)以及一些其他内容,例如文件系统链接。 我正在寻找更多Unix/Linux/BSD/DarwinMacOSX特定的控制机制,用于更多/所有元数据,即所有权限和用户/组所有权。 ACL和其他元数据控制是可选的。试图看看git目前存储的东西是否可能有助于解决这个问题。
root@node1 Dec 15 09:40:45 ~/.../sandbox-1# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README
# new file: dummy-file-will-be-removed
# deleted: ownerfile
#
root@node1 Dec 15 09:40:45 ~/.../sandbox-1# git commit -m "testing git"
[master c5b0201] testing git
2 files changed, 1 insertions(+), 2 deletions(-)
create mode 100644 dummy-file-will-be-removed
delete mode 100644 ownerfile
root@node1 Dec 15 09:41:55 ~/.../sandbox-1#
[...]
root@node1 Dec 15 11:33:11 ~# git --version
git version 1.7.4.1
root@node1 Dec 15 11:33:14 ~#
Mode
的最后三个数字
是不同用户组的文件权限
,而前三个数字
则是关于文件类型
的,这一点不是很清楚。你可以尝试这样想:创建一个名为dummy-file-will-be-removed
的文件,其模式为100644
。 ;) - Kjuly