哪个版本控制软件允许白名单?

时间:2016-04-28 16:02:14

标签: git svn version-control mercurial bazaar

我想将几个目录和文件列入白名单:

/app
/config
/db
Gemfile

首选版本控件git不允许跟踪目录:

# .gitignore:
* # ignore all: suppose I prefer whitelisting
# but not the following things:
!/app/*
!/config/*
!/db/*
!Gemfile

不起作用:git只看到Gemfile

您是否碰巧知道是否有任何版本控制软件允许将dirs和文件列入白名单?

修改1

尝试应用https://stackoverflow.com/a/8025106/788700

# Ignore everything:
*
# Don't ignore directories, so we can recurse into them:
!*/
# Don't ignore these dirs:
!app/*
!config/*
!db/*
# Don't ignore .gitignore and Gemfile:
!.gitignore
!Gemfile

- 不会跟踪app/config/db/中的目标。

编辑2:已解决

使用上述答案中的a comment

# Ignore everything:
*


# Don't ignore directories, so we can recurse into them:
!*/


# Don't ignore these dirs:
!app/*
!app/**/*

!config/*
!config/**/*

!db/*
!db/**/*


# Don't ignore .gitignore and Gemfile:
!.gitignore
!Gemfile

似乎正在发挥作用。

1 个答案:

答案 0 :(得分:2)

  1. Git | Mercurial没有跟踪空目录,但是如果您在dirs中添加虚拟文件 - 它们将被跟踪(并成功取消签名)
  2. Git | Mercurial仅对新文件(未跟踪)应用忽略模式,因此 - 如果您忽略所有文件,但手动添加一些对象,则无论* ignore-file设置如何都会跟踪它们(但见上文)
  3. Subversion可以跟踪空目录,但是svn:ignore模式比Git | Mercurial中的等效机制弱一些