是否有(开源)VCS可以使用白名单而不是黑名单?

时间:2014-11-08 02:53:00

标签: git svn version-control mercurial cvs

我正在寻找一个开源版本控制系统,该系统可以配置为仅跟踪遍布文件系统的少量单个文件。与.gitignore相反的东西。

用例是跟踪我在安装操作系统后所做的更改。许多更改都在/ etc之外,所以我不能只在/ etc下进行修订控制。使用git进行版本控制似乎很慢。

似乎我可以使用.gitignore,如下所示。跟踪/例如/ usr / share / terminator / terminator:

*
!/usr
/usr/*
!/usr/share
/usr/share/*
!/usr/share/terminator
/use/share/terminator/*
!/usr/share/terminator/terminator

但这似乎有点笨拙(即使我要自动生成.gitignore)。有没有更好的方法(或更合适的版本控制系统)?

1 个答案:

答案 0 :(得分:3)

我认为你可以使用git来解决这个问题。请注意,一旦文件被跟踪,git就会继续跟踪文件,即使它处于忽略规则中。因此,假设您不想经常跟踪新文件,

  1. 添加您实际想要跟踪的所有文件

    git add file1 file2 dir1/file3 dir1/file4 dir1/dir2/file5 dir2
    
  2. 使用

    提交这些文件
    git commit -m "msg"
    
  3. .gitignore添加忽略规则以忽略所有其他文件

    echo "*" > .gitignore
    
  4. 现在,如果您对任何现有文件进行更改,它们将显示在git statusgit diff中,依此类推。您可以使用git add filename添加它们并正常操作它们。

  5. 要在下次添加新文件,您需要使用-f

    git add -f new_file1 
    git commit -m "msg"