Каталог .git/svn
может быть создан, если вы запустите любую команду git svn
в любом репозитории - например, просто запустить git svn info
, а Карл Норум предполагает, что создаст его. Тем не менее, немного лучшим тестом может быть то, что .git/svn
существует и не является пустым, например,
[ -d .git/svn ] && [ x != x"$(ls -A .git/svn/)" ] && echo Looks like git-svn
Если вы хотите более строгий тест, вы можете просмотреть историю HEAD
любых сообщений о фиксации, которые содержат git-svn-id
- по сути, это то, что git svn info
делает, прежде чем оно сдается. Например:
[ x != x"$(git log -n 1 --grep='^\s*git-svn-id' --oneline)" ] && echo "git-svn!"
... но звучит так, как будто это может быть слишком медленно для вашего варианта использования.
Исходный код git-svn.perl
описывает макет репозитория git-svn
в его различных версиях:
... чтобы вы могли написать тесты для всех этих, если вы хотите быть осторожными, чтобы поймать все разные версии.