Właśnie zacząłem używać SVN i mam katalog pamięci podręcznej, którego nie potrzebuję pod kontrolą źródła. Jak mogę zignorować cały katalog / folder SVN?
svn
version-control
directory
Gilean
źródło
źródło
Odpowiedzi:
Ustaw
svn:ignore
właściwość katalogu nadrzędnego:Jeśli masz wiele rzeczy do zignorowania, oddziel je znakiem nowej linii w wartości właściwości. W takim przypadku łatwiej jest edytować wartość właściwości za pomocą zewnętrznego edytora:
źródło
svn rm --keep-local dirname
pierwszy. (Mój wynik svn statystyki był ogromny i wpadłem na to przez chwilę.)svn propset svn:ignore -F file.txt .
svn:ignore
a niesvn::ignore
tak jak ja. Możesz ustawić dowolne właściwości, więc ta druga będzie ustawiona OK, a będziesz mógł zobaczyć i edytować właściwość, ale nie spowoduje to, że SVN zignoruje wymienione pliki.Oto przykładowa struktura katalogów:
Gdy
project
zobaczysz, że twój katalog pamięci podręcznej nie został dodany i jako taki jest wyświetlany.Aby ustawić właściwość ignorowania, wykonaj
gdzie
svn:ignore
jest nazwa właściwości, którą ustawiasz,cache
jest wartością właściwości i.
katalog, w którym ustawiasz tę właściwość. Powinien to być katalog nadrzędnycache
katalogu, który potrzebuje tej właściwości.Aby sprawdzić, jakie właściwości są ustawione:
Aby zobaczyć wartość
svn:ignore
:Aby usunąć ustawione wcześniej właściwości:
źródło
dirname
. Na przykład, podczas pisaniasvn propset svn:ignore dirname
, jeśli pozwolisz, aby powłoka (bash) wypełniła dla ciebiesvn propset svn:ignore dirname/
nazwę katalogu , doda to końcowe ukośnik, pozostawiając ci polecenie , które nie spowoduje zignorowania folderu. Przynajmniej takie było moje doświadczenie.Ważne, aby wspomnieć:
W wierszu polecenia nie można użyć
Spowoduje to również dodanie zignorowanych plików, ponieważ wiersz poleceń rozwija się
*
i dlategosvn add
uważa, że chcesz dodać wszystkie pliki. Dlatego użyj tego zamiast:źródło
svn add --force *
NIE DZIAŁA . Użyj kropki, a nie gwiazdy.Ponieważ spędziłem trochę czasu próbując sprawić, aby to zadziałało, należy zauważyć, że jeśli pliki już istnieją w SVN, musisz
svn delete
je, a następnie edytowaćsvn:ignore
właściwość.Wiem, że to wydaje się oczywiste, ale wciąż pojawiały się jak
?
na mojejsvn status
liście, kiedy myślałem, że po prostu zignorują je lokalnie.źródło
Aby nieznacznie rozwinąć, jeśli robisz to za pomocą narzędzia wiersza polecenia svn, wpisz:
który otworzy wybrany edytor tekstu, a następnie wpisz „*”, aby zignorować wszystko, co się w nim znajduje, i zapisz + quit - obejmie to sam katalog w svn, ale zignoruje wszystkie znajdujące się w nim pliki, aby zignorować katalog, użyj ścieżka rodzica, a następnie wpisz nazwę katalogu w pliku. Po zapisaniu uruchom aktualizację („svn up”), a następnie sprawdź odpowiednią ścieżkę.
źródło
Ustaw
svn:ignore
właściwość w katalogu nadrzędnym:Spowoduje to zastąpienie dowolnej bieżącej wartości
svn:ignore
. Możesz edytować wartość za pomocą:Który otworzy twój edytor. Możesz dodać wiele wzorów, po jednym w wierszu.
Możesz zobaczyć bieżącą wartość za pomocą:
Jeśli używasz GUI, powinna to zrobić opcja menu.
źródło
svn ps svn:ignore . 'cachedir'
powoduje wcachedir is not under version control
. zmiana nasvn ps svn:ignore 'cachedir' .
pracującą dla mnieDziękujemy za wszystkie powyższe uwagi. Chciałbym tylko podzielić się dodatkowymi informacjami z moich doświadczeń, ignorując pliki.
Gdy foldery są już pod kontrolą wersji
Po svn import i svn co pliki, co zwykle robimy po raz pierwszy.
Cała pamięć podręczna środowiska wykonawczego, foldery załączników będą pod kontrolą wersji. przed svn ps svn: zignoruj musimy usunąć go z repozytorium.
W wersji SVN 1.5 powyżej możemy używać
svn del --keep-local your_folder
, ale w przypadku wcześniejszej wersji moje rozwiązanie to:.svn
ukrytego folderu)Kiedy potrzebujemy więcej niż jednego folderu do zignorowania
svn:ignore
svn pe
będzie musiał edytować plik tekstowy. W razie potrzeby możesz użyć tego polecenia, aby ustawić edytor tekstu za pomocą vi :Plik wygląda mniej więcej tak:
źródło
svn propset svn:ignore -F .ignorethesefiles .
, który wykorzysta zawartość pliku. Lubię go trzymać, żebyś wiedział, co jest ignorowane. Edycje wymagają zestawu kontrolnego.Najpierw usuń ...
Jeśli twój katalog
foo
jest już pod kontrolą wersji, usuń go najpierw za pomocą:... następnie zignoruj:
źródło
... a jeśli chcesz zignorować więcej niż jeden katalog (powiedz
build/
temp/
i*.tmp
pliki), możesz to zrobić w dwóch krokach (ignorując pierwszy i edytować właściwości ignorowania (zobacz inne odpowiedzi tutaj) lub napisać coś w styluw wierszu poleceń.
źródło
Jeśli używasz konkretnego klienta SVN TortoiseSVN , to po zatwierdzeniu masz opcję kliknięcia prawym przyciskiem myszy pozycji i wybrania „Dodaj do listy ignorowanych”.
źródło
Polecenie zignorowania wielu pozycji jest nieco trudne i wymaga odwrotnych ukośników.
Polecenie to zignorować coś o nazwie
cache
,tmp
,null
, aand_so_on
w bieżącym katalogu.źródło
svn propset svn:ignore -F .ignorethesefiles .
pozwoli ci użyć pliku. I jak wspomniano, zawsze miałeś propedit.Miałem problemy z ignorowaniem zagnieżdżonych katalogów; górny katalog, który chciałem zignorować, nie wyświetlałby się z „svn status”, ale wszystkie podkatalogi tak. Jest to prawdopodobnie oczywiste dla wszystkich innych, ale pomyślałem, że podzielę się tym:
PRZYKŁAD:
źródło
"Dziękuję Ci" svn za tak ohydny, fałszywy i trudny sposób ignorowania plików.
Napisałem więc skrypt svn-ignore-all :
Ponadto, aby zignorować określoną listę plików / ścieżek, możemy użyć tego wariantu svn-ignore . Myślę, że svn-ignore-all powinno naprawdę być jak xargs svn-ignore.
Jeszcze jedno: mam tendencję do zanieczyszczania moich kas svn wieloma losowymi plikami. Kiedy nadchodzi czas zatwierdzenia, przenoszę te pliki do „starego” podkatalogu i mówię svn, aby ignorował „stary”.
źródło
Bash oneliner dla wielu ignoruje:
źródło
Jeśli katalog projektu ma nazwę / Project, a katalog pamięci podręcznej ma nazwę / Project / Cache, musisz ustawić właściwość subversion w / Project. Nazwą właściwości powinna być „svn: ignore”, a wartością właściwości powinna być „pamięć podręczna”.
Więcej informacji na temat właściwości można znaleźć na tej stronie w podręczniku Subversion.
źródło
Odpowiedź Jasona załatwi sprawę. Jednak zamiast ustawiać svn: ignore na „.” w katalogu pamięci podręcznej możesz dołączyć „pamięć podręczną” do właściwości svn: ignore katalogu nadrzędnego , na wypadek, gdyby katalog pamięci podręcznej nie zawsze był obecny. Robię to w wielu „wyrzucanych” folderach.
źródło
ABY ZACHOWAĆ KATALOGI, KTÓRE SVN BĘDĄ IGNOROWAĆ:
źródło
Jeśli używasz interfejsu użytkownika dla SVN, takiego jak TortoiseSVN, lub jakiegoś rodzaju integracji IDE, w tym samym menu powinna również znajdować się opcja ignorowania jako operacji zatwierdzania / dodawania.
źródło
Ustaw svn: ignore własność . Większość narzędzi SVN z interfejsem użytkownika ma na to sposób, a także omówienie wiersza polecenia w łączu.
źródło
Ponieważ używasz Wersji, jest to naprawdę bardzo łatwe:
źródło
Uważaj również na końcowe cięcia. Zauważyłem, że uwzględnienie
images/*
w moim pliku ustawień ignorowania nie ignorowało./images/
. Kiedy prowadziłemsvn status -u
, nadal się pokazywało? images
. Właśnie zmieniłem ustawienie ignorowania na justimages
, no slash. Przeprowadziłem kontrolę statusu i to wyjaśniło.źródło
Rozwiązane za pomocą Eclipse w następujący sposób:
Przede wszystkim zsynchronizuj folder z projektem:
W następnym widoku, widoku zespołu, możesz zobaczyć wszystkie zasoby, które możesz zatwierdzić na serwerze SVN.
Wybierz folder zasobów zasobu, który chcesz zignorować, a następnie możesz go zignorować za pomocą
Następnie w oknie potwierdzenia wybierz pierwszą opcję: „ignoruj według nazwy”.
Na przykład, jeśli chcę zignorować folder docelowy i jego zasoby klasy. Zsynchronizuję, aw widoku synchronizacji wybiorę folder docelowy. Następnie wybiorę
do,
svn:ignore
a następnie potwierdzę pierwszą opcję w oknie potwierdzenia.źródło
Po tym, jak straciłem dużo czasu, szukając sposobu na wykonanie tej prostej czynności, postanowiłem napisać, że nie było trudno znaleźć dobre wyjaśnienie.
Najpierw pozwól strukturze próbki
$ svn st? projekt / bagażnik / cel? project / trunk / myfile.x
1 - najpierw skonfiguruj edytor, w eksport mycase vim SVN_EDITOR = vim
2 - „svn propedit svn: ignore project / trunk /” otworzy nowy plik i możesz dodać swoje pliki i podkatalog w naszym przypadku wpisz „cel” zapisz i zamknij plik i działa
$ svn st? project / trunk / myfile.x
dzięki.
źródło