2012-12-03 16 views
12

mam importowane z Git repozytorium SVN przy użyciu:Jak zdobyć jeden .gitignore po git svn create-zignorować

git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git 

To udało się w końcu chociaż na sposób zawiódł kilka razy i miałem "zrestartować" z

git svn fetch 

Jednak wygląda na to, że wszystko jest w porządku. (Chociaż teraz pisząc zaczynam się zastanawiać, czy powinienem dostarczyły --preserve-empty-dirs w dodatkowych fetch es także EDIT:Nie, nie powinien zobaczyć mój komentarz ryk.).

Potem chciałem stworzyć .gitignore i tak zrobiłem z

git svn create-ignore 

i to się udało, jak również.

Ale wynik końcowy jest mniej niż satysfakcjonujący. Wygenerował wiele plików .gitignore w wielu folderach. Wydaje się, że za każdym razem, gdy SVN miał właściwość svn:ignore, Git tworzył odpowiedni plik .gitignore.

Podczas gdy chciałbym, aby zostały scalone w jeden plik główny root .gitignore. Jest to możliwe dzięki git, ponieważ jest znacznie bardziej elastyczny i ignoruje pozwalając na zignorowanie w podkatalogach z symbolami wieloznacznymi (lub bez nich). W każdym razie uważam, że możliwe jest automatyczne przekształcenie tych "sub-.gitignore s" w jeden w katalogu głównym.

I chciałbym mieć, bo „ludzie” SVN nie będzie ze mnie zadowolony popełnienie ponad dwadzieścia .gitignore plików ...

+0

Wygląda na to, że 'git svn fetch' nie akceptuje' --preserve-empty-dirs' (sądząc po tym, co pokazuje 'git help svn'), co odpowiada na wątpliwości. –

+1

Rzeczywiście "git svn fetch" nie oznacza tej flagi, ale można je dodać do .gitconfig, np .: '[svn-remote" svn "] preserve-empty-dirs = true'. Aby go aktywować, musisz dodać: '[svn-remote" svn "] added-placeholder = .gitignore' –

Odpowiedz

23

znalazłem rozwiązanie. Musisz użyć show-ignore zamiast create-ignore i zapisać dane wyjściowe do pliku.

Więc po klonowania repozytorium wykonać następujące polecenia:

git svn show-ignore > .gitignore 

z repozytorium głównego, w którym masz katalog .git.

+3

Kiedy to zrobiłem, utworzyłem plik .gitignore z kodowaniem Unicode. To spowodowało, że ignorowanie w trybie cichym zakończyło się niepowodzeniem, dopóki ręcznie nie zmieniłem kodowania pliku .gitignore na kodowanie UTF-8. –