2011-06-04 5 views
3

У меня есть публичный репозиторий svn в коде google, однако локально я переключился на git по разным причинам. В настоящее время я единственный разработчик с доступом к репозиторию googlecode, поэтому нет необходимости делать выборки. Все транзакции идут через ветвь dev, к главной ветви в svn, с git svn dcommit. Все хорошо. Теперь я в ситуации, когда у меня есть некоторые файлы локально в управлении версиями с git, но я НЕ ВСЕГДА хочу, чтобы они стали общедоступными.git знает, но (удаленный) svn ignore

У меня возникла идея: я создаю каталог private и добавляю свойство svn: ignore "private/*" в мое svn repo. Но после

git svn dcommmit 

Я получаю сообщение об ошибке: Объединить конфликт во время фиксации: Файл или каталог '.' устарел; попробуйте обновить: ресурс устарел; попробуйте обновить с/usr/local/git/libexec/git-core/git-svn line 574

Я попытался импортировать свойство svn: ignore в .git/info/exclude, но это исключает все мои git-файлы в ' частный "из git, который определенно не то, что я хочу.

[08.06.2011]

Я думаю, что ошибка не из-за СВН: игнорировать, кажется, что мерзавец СВН полностью игнорировать SVN: игнорировать, но из-за какой-либо другой неизвестной пока причине. Возникает вопрос: можно ли исключить пути из git svn dcommit таким же образом, как можно исключить пути git svn fetch с --ignore тропой

+0

попытался вытащить и слить, так как вы добавили это свойство? – damianb

+0

сделал: git svn rebase/git svn fetch, не уверен, как тянет работает с git-svn? –

+0

Я имел ввиду, извините, извините. Стрелял в темноту, чтобы посмотреть, есть ли быстрый быстрый выход для тебя; похоже, что это один для git pro. Это хороший вопрос, так что +1. – damianb

ответ

0

git-svn man страница показывает, что это возможно с помощью следующего ключа конфигурации:

svn-remote.<name>.ignore-paths 
+0

Спасибо за ваш ответ, и я думаю, что я также видел этот флаг во время моих поисков. В то время я читал его как односторонний блок: от svn -> git. 'Это позволяет указать регулярное выражение Perl, которое приведет к пропуску всех соответствующих путей FROM CHECKOUT FROM SVN. Параметр --ignore-paths должен соответствовать для каждой выборки (включая автоматические выборки из-за клонирования, dcommit, rebase и т. Д.) В данном репозитории. Я прочитал его снова, и я все еще придерживаюсь своего оригинального мнения, но английский не мой родной язык, и в целом я склонен неправильно читать страницы руководства (особенно git's) –

1

git-svn игнорирует svn: игнорировать, но SmartGit не проверяет ваш репозиторий с помощью SmartGit. Он преобразует его в соответствующие файлы .gitignore и наоборот. Так что я бы порекомендовал вам использовать SmartGit вместо git-svn.

+0

спасибо за отзыв Я дам smartgit попробовать .. –