2016-04-28 10 views
1

私はディレクトリのカップルをホワイトリストに登録したいとファイル:どのバージョン管理ソフトウェアでディレクトリをホワイトリストに登録できますか?

/app 
/config 
/db 
Gemfile 

A行く-にバージョン管理、git、ディレクトリを追跡することはできません:

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

は動作しません。 gitはGemfileしか見ることができません。

どのバージョン管理ソフトウェアでもディレクトリやファイルをホワイトリストに登録できますか?

編集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/でのdirsを追跡することはありません。

編集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 

が動作しているようです。

+0

これは明らかではないGit以外のバージョン管理システムについてあなたの前提は正しくありません; Gitはこれを許可しますが、ファイルを制御するディレクトリを無視しなければなりません。後続のパターンがある場合でも、Gitは無視されたディレクトリに降下しないからです。 –

+0

@CharlesBailey:すべての子ディレクトリを含むすべてのディレクトリを無視しても機能しますが、私の観点からは使用できません(子ディレクトリのリストが多く変更されるため)。私は、ディレクトリをホワイトリストにすることを「再帰的に」可能にする任意のソリューションを探しています。 – Adobe

+2

人間の言葉で「ホワイトリスト」とは何ですか? –

答えて

2
  1. のGit | Mercurialは空のディレクトリを追跡しませんが、あなたはdirsのダミー・ファイルを追加します場合 - 彼らは
  2. Gitは追跡(および成功しunignored)になる| Mercurialは唯一の新しいのために無視-パターンを適用しますあなたがすべてを無視していくつかのオブジェクトを手作業で追加すると、それらは* ignore-fileの設定に関係なくトラッキングされます(上記参照)
  3. Subversionは空のディレクトリを追跡できますが、svn:無視するパターンはGitの同等のメカニックよりも一般的に弱いです| Mercurial
+0

なぜdownvoteですか?この回答はかなり正しいです。 – dOxxx

関連する問題