Можно ли сохранить файлы .gitignore вне SVN? - PullRequest
6 голосов
/ 24 января 2012

Я использую git svn, чтобы объединить изменения из моего локального репозитория git с сервером SVN.Однако, когда я запускаю git svn dcommit, он на самом деле фиксирует любые файлы .gitignore, которые у меня есть в моем исходном дереве.Это даже после того, как я извлек SVN-репозиторий локально (используя SVN), задаю свойство svn: ignore (рекурсивно, перечисляя .gitignore в качестве одного из игнорируемых файлов), а затем фиксируя изменение этого свойства непосредственно в SVN.

Это предполагаемое поведение?Жук?Есть ли обходной путь, о котором кто-нибудь знает, чтобы не допустить .gitignore из SVN?

Я просто знаю, что не-git-пользователь в моей команде увидит эти файлы и начнет их удалять, а затем в следующий разперейдите на rebase/dcommit В SVN будет много нежелательных файлов.

1 Ответ

9 голосов
/ 24 января 2012

Вы можете использовать специфичный для репозитория файл «exclude» Git вместо файлов .gitignore.Файл «exclude» находится в $GIT_DIR/info/exclude (где $GIT_DIR - это каталог репозитория Git, обычно .git).Формат этого файла точно такой же, как и у файлов .gitignore.Разница в том, что это специфичный для репозитория файл - он будет существовать только в вашем репозитории.Он не будет распространяться ни в какие другие репозитории (например, через git clone или git svn dcommit).

Невозможно пропустить .gitignore файлы из репозитория SVN, но хранить их в Git.Любая попытка сделать это приведет к тому, что ваши локальные коммиты не будут соответствовать коммитам, которые git-svn получает с SVN-сервера.Другими словами, история вашего локального хранилища не может быть согласована с историей из SVN;они будут постоянно несинхронизированы.

...