SVN: Czy istnieje sposób na oznaczenie pliku jako „nie zatwierdzaj”?

153

Z TortoiseSVN mogę przenieść plik na listę zmian ignorowania przy zatwierdzaniu, tak że kiedy zatwierdzam całe drzewo, zmiany w tym pliku nie są zatwierdzane.

Czy istnieje sposób na zrobienie czegoś takiego za pomocą narzędzia wiersza poleceń svn?

EDYCJA: Dziękuję za sugestie do użycia svn:ignore, ale to nie robi tego, czego szukałem.

svn:ignorewpływa na takie rzeczy jak svn add& svn import. Daje mu listę wzorców nazw plików do zignorowania.

Mam plik, który jest już pod kontrolą źródła, ale chcę wprowadzić tymczasowe zmiany w tym pliku, których nie chcę później zatwierdzać, kiedy zatwierdzam całe drzewo źródłowe. Wprowadzam wiele innych zmian i mógłbym umieścić notatkę na monitorze z informacją, żebym przywrócił ten plik przed zatwierdzeniem drzewa, ale byłoby miło, gdyby svn mógł automatycznie pominąć ten plik.

Ferruccio
źródło
1
Istnieje sposób korzystania z oddziału osobistego i statusu przełącznika. [Zobacz mój drugi post na ten temat.] [1] [1]: stackoverflow.com/questions/862950/…
ptitpion

Odpowiedzi:

120

Subversion nie ma wbudowanej funkcji „nie zatwierdzaj” / „ignoruj ​​przy zatwierdzaniu” od lutego 2016 r. / Wersja 1.9. Ta odpowiedź jest nieidealnym obejściem wiersza polecenia

Jak stwierdza OP, TortoiseSVN ma wbudowaną listę zmian „ignoruj ​​przy zatwierdzeniu”, która jest automatycznie wykluczana z zatwierdzeń. Klient wiersza poleceń nie ma tego, więc musisz użyć wielu list zmian, aby osiągnąć to samo zachowanie (z zastrzeżeniami) :

  • jeden za pracę, którą chcesz się zaangażować [praca]
  • jeden na rzeczy, które chcesz zignorować [ignoruj ​​przy zatwierdzeniu]

Ponieważ istnieje precedens z TortoiseSVN, używam "ignoruj ​​przy zatwierdzaniu" w moich przykładach dla plików, których nie chcę zatwierdzać. Użyję słowa „praca” dla plików, które robię, ale możesz wybrać dowolną nazwę.

Najpierw dodaj wszystkie pliki do listy zmian o nazwie „praca”. To musi być uruchamiane z katalogu głównego twojej kopii roboczej:

svn cl work . -R

Spowoduje to rekurencyjne dodanie wszystkich plików w kopii roboczej do listy zmian o nazwie „praca”. Jest to wada - ponieważ nowe pliki są dodawane do kopii roboczej, musisz specjalnie dodać nowe pliki, inaczej nie zostaną uwzględnione. Po drugie, jeśli będziesz musiał uruchomić to ponownie, będziesz musiał ponownie dodać wszystkie swoje pliki „ignoruj ​​przy zatwierdzaniu”. Niezbyt idealne - możesz zacząć utrzymywać własną listę „ignorowanych” w pliku, tak jak robili to inni.

Następnie dla plików, które chcesz wykluczyć:

svn cl ignore-on-commit path\to\file-to-ignore

Ponieważ pliki mogą znajdować się tylko na jednej liście zmian, uruchomienie tego dodatku po poprzednim dodaniu „roboczym” usunie plik, który chcesz zignorować z listy zmian „pracy” i umieści go na liście zmian „ignoruj ​​przy zatwierdzeniu”.

Kiedy jesteś gotowy do zatwierdzenia zmodyfikowanych plików, które chcesz zatwierdzić, możesz po prostu dodać „--cl work” do swojego zatwierdzenia:

svn commit --cl work -m "message"

Oto jak wygląda prosty przykład na moim komputerze:

D:\workspace\trunk>svn cl work . -R
Skipped '.'
Skipped 'src'
Skipped 'src\conf'
A [work] src\conf\db.properties
Skipped 'src\java'
Skipped 'src\java\com'
Skipped 'src\java\com\corp'
Skipped 'src\java\com\corp\sample'
A [work] src\java\com\corp\sample\Main.java
Skipped 'src\java\com\corp\sample\controller'
A [work] src\java\com\corp\sample\controller\Controller.java
Skipped 'src\java\com\corp\sample\model'
A [work] src\java\com\corp\sample\model\Model.java
Skipped 'src\java\com\corp\sample\view'
A [work] src\java\com\corp\sample\view\View.java
Skipped 'src\resource'
A [work] src\resource\icon.ico
Skipped 'src\test'

D:\workspace\trunk>svn cl ignore-on-commit src\conf\db.properties
D [work] src\conf\db.properties
A [ignore-on-commit] src\conf\db.properties

D:\workspace\trunk>svn status

--- Changelist 'work':
        src\java\com\corp\sample\Main.java
        src\java\com\corp\sample\controller\Controller.java
        src\java\com\corp\sample\model\Model.java
M       src\java\com\corp\sample\view\View.java
        src\resource\icon.ico

--- Changelist 'ignore-on-commit':
M       src\conf\db.properties

D:\workspace\trunk>svn commit --cl work -m "fixed refresh issue"
Sending        src\java\com\corp\sample\view\View.java
Transmitting file data .done
Committing transaction...
Committed revision 9.

Alternatywą byłoby po prostu dodanie każdego pliku, który chcesz zatwierdzić, do listy zmian „roboczych”, a nawet nie utrzymywanie listy ignorowanych, ale to też jest dużo pracy. Naprawdę, jedynym prostym, idealnym rozwiązaniem jest to, czy / kiedy zostanie zaimplementowane w samym SVN. Istnieje długotrwały problem dotyczący tego w narzędziu do śledzenia problemów Subversion, SVN-2858 , na wypadek gdyby miało się to zmienić w przyszłości.

Joshua McKinnon
źródło
1
Dodałem dwa pliki z poleceniem, o którym wspomniałeś: $svn st --- Changelist 'ignore-on-commit': M database.php M config.php i mimo to zostały wysłane do repozytorium po zatwierdzeniu. Masz jakiś pomysł, co zrobiłem źle?
Attila Fulop
7
Dodanie plików do listy zmian „ignoruj ​​przy zatwierdzaniu” samo w sobie nie zapobiega zatwierdzaniu plików. TortoiseSVN (klient GUI systemu Windows) zbudował z uwzględnieniem „ignoruj ​​przy zatwierdzaniu”, ale svn wiersza poleceń nie. Jedyną sugestią, jaką miałem w mojej pierwotnej odpowiedzi, było dodanie plików, które chcesz zatwierdzić do listy zmian, i nakazanie jej, aby to zrobiło
Joshua McKinnon,
7
ignore-on-commit jest z pewnością zarezerwowaną listą Tortoise. Wszystko, co robi, to domyślnie zapobieganie sprawdzaniu elementów w GUI, więc jest to funkcja specyficzna dla GUI Tortoise. Jeśli korzystasz z graficznego interfejsu użytkownika, nie musisz używać wiersza poleceń, aby dodawać elementy do listy. Wystarczy menu kontekstowe pozycji listy zmian i na dole możesz przenieść je do listy zmian, a ignorowanie przy zatwierdzeniu jest już zdefiniowane. tortoisesvn.net/docs/release/TortoiseSVN_en/...
tjmoore
to nie pomogło Jackowi. popełnił wszystko.
ahnbizcad
Nie działa, pytanie dotyczyło konkretnie rozwiązania wiersza poleceń, a nie GUI.
riv
26

Konsekwentnie znajdowałem się w tej sytuacji: a listy zmian nie działają dla mnie - chcę zrobić krótką listę plików, których nie chcę zatwierdzać, zamiast utrzymywać ogromną listę plików, które chcę popełnić!

Pracuję w linii poleceń Linuksa: więc moim rozwiązaniem jest utworzenie skryptu / usr / bin / svnn (tak, z dwoma 'n'!) W następujący sposób:

#! /bin/bash
DIR=/home/mike/dev/trunk

IGNORE_FILES="\
        foo/pom.xml \
        foo/src/gwt/App.gwt.xml \
        foo/src/main/java/gwt/Common.gwt.xml \
        foo/src/main/resources/context/datasource/local.xml \
        foo/src/main/resources/context/environment/local.xml"

for i in $IGNORE_FILES; do mv $DIR/$i $DIR/"$i"_; done;

svn "$@"

for i in $IGNORE_FILES; do mv $DIR/"$i"_ $DIR/$i; done;

Oczywiście jest to dostosowane do mojej sytuacji - ale po prostu zmień DIR i IGNORE_FILES, aby pasowały do ​​ustawień programisty. Pamiętaj, aby zmienić skrypt na wykonywalny za pomocą:

sudo chmod +x /usr/bin/svnn

.. potem po prostu używasz "svnn" zamiast "svn", aby uruchomić subversion bez obawy o sprawdzanie lokalnych zmian w plikach na liście IGNORE_FILES. Mam nadzieję, że to pomoże!

user88044
źródło
Wreszcie ta odpowiedź jest rzeczywiście prawidłowa. Musisz napisać jakieś narzędzie. W rzeczywistości jest to niedoskonałe, ponieważ chcę mieć opcję dynamiczną, na przykład svnn ignore configs/*- z symbolami wieloznacznymi i dzwonkami i gwizdkami. Myślę, że sam coś takiego piszę, a potem wracam!
Tomasz Gandor
to jest świetne! Jeszcze lepiej, utwórz alias w .bashrc dla svn -> svnn. Co więcej, zamiast określać pliki do zignorowania w poleceniu, mogłoby zachowywać się jak git, sprawdzałby plik .ignore w folderze i ignorowałby każdy plik, który pasuje do wzorca.
Tarek
Zamiast konieczności ponownego uczenia się pisania svnn, rozważ wywołanie go svni umieszczenie tego skryptu w czymś, co może znajdować się na początku ścieżki PATH, na przykład ${HOME}/bin. Z samego skryptu zadzwonisz /usr/bin/svn.
Joost
17

Nie wierzę, że istnieje sposób na zignorowanie pliku w repozytorium. Często spotykamy się z tym w przypadku pliku web.config i innych plików konfiguracyjnych.

Chociaż nie jest to idealne rozwiązanie, najczęściej widzę i używam pliku .default i nie ma żadnego zadania tworzenia kopii lokalnych.

Na przykład w repozytorium jest plik o nazwie, web.config.defaultktóry ma wartości domyślne. Następnie utwórz zadanie nant, które zmieni nazwy wszystkich web.config.defaultplików na, web.configktóre można następnie dostosować do wartości lokalnych. To zadanie powinno być wywoływane po pobraniu nowej kopii roboczej lub uruchomieniu kompilacji.

Musisz także zignorować utworzony web.configplik, aby nie został zatwierdzony w repozytorium.

Steven Lyons
źródło
8

Sprawdź listy zmian , które zapewniają opcję odfiltrowania plików, które zostały zmienione, ale nie chcesz ich zatwierdzać. SVN nie pominie automatycznie pliku, chyba że mu to powiesz - a sposób, w jaki można powiedzieć, że ten plik różni się w jakiś sposób od innych plików, polega na umieszczeniu go na liście zmian.

Wymaga to od ciebie więcej pracy i możesz zastosować listę zmian tylko do kopii roboczej (oczywiście wyobraź sobie chaos, który mógłby powstać, gdybyś mógł zastosować właściwość „nigdy nie aktualizuj” do wersji!).

gbjbaanb
źródło
1
Ale właśnie tego chcemy. Na przykład plik źródłowy, dla którego należy ustawić defaultUserId = yourId, zamiast domyślnego systemu.
orbfish
4

Przyszedłem do tego wątku, szukając sposobu na wykonanie "atomowego" zatwierdzenia tylko niektórych plików i zamiast ignorować niektóre pliki przy zatwierdzaniu, poszedłem w drugą stronę i zatwierdziłem tylko te pliki, które chciałem:

svn ci filename1 filename2

Może to komuś pomoże.

Radek
źródło
Twoja odpowiedź to tylko jedna adekwatna sugestia w tym wątku. svn cijest po prostu aliasem do svn commit. Polecenie Commit pozwala na wykonanie określonego zatwierdzenia określonych plików
oxfn
3

Chłopaki, właśnie znalazłem rozwiązanie. Biorąc pod uwagę, że TortoiseSVN działa tak, jak chcemy, próbowałem zainstalować go pod Linuksem - co oznacza, że ​​działa na Wine. O dziwo to działa! Wszystko co musisz zrobić to:

  1. Dodaj pliki, które chcesz pominąć, wykonując polecenie: "svn changelist 'ignore-on-commit'".
  2. Użyj TortoiseSVN, aby zatwierdzić: "~ / .wine / drive_c / Program \ Files / TortoiseSVN / bin / TortoiseProc.exe / command: commit / path: '
  3. Wyłączone pliki będą domyślnie odznaczone do zatwierdzenia, podczas gdy inne zmodyfikowane pliki będą sprawdzane. To jest dokładnie to samo, co w systemie Windows. Cieszyć się!

(Powodem, dla którego trzeba wykluczyć pliki przez CLI, jest to, że nie znaleziono wpisu menu, który to robi, nie wiem dlaczego. W każdym razie działa to świetnie!)

James Fu
źródło
2

Pliki w konflikcie nie mogą być zatwierdzane. Możesz to wykorzystać, aby zachować prywatne zmiany poza repozytorium. Działa to najlepiej w przypadku małej liczby plików.

Aby uzyskać konflikt dla a-file, twoja kopia robocza (WC) nie ma aktualnych danych a-filez repozytorium i że a-filew twoim WC są zmiany, które są w tej samej lokalizacji co zmiany w repozytorium (zmiany, których nie zaktualizowałeś do jeszcze). Jeśli nie chcesz czekać na powyższe warunki, możesz stworzyć konflikt w a-filenastępujący sposób:
W kopii roboczej 1 (WC1) dodaj wiersz tekstu na początku a-file, na przykład „zrób tutaj konflikt” . Użyj niezbędnej składni, aby nie uszkodzić repozytorium. Zatwierdź a-filez WC1. W WC2 dodaj inny wiersz tekstu na początku a-file, np. „Chcę konfliktu” . Aktualizacja z WC2, a teraz plik a powinien być w konflikcie.

phi
źródło
1

Zamiast tego napisałbym pomocniczy skrypt bash, który działa svn commitna wszystkich plikach, których potrzebujesz, i na żadnym z tych, których nie potrzebujesz. W ten sposób masz dużo większą kontrolę.

Na przykład za pomocą jednej linii możesz zatwierdzić wszystkie pliki z rozszerzeniem .hi .cppdo których wprowadziłeś zmiany (i które nie spowodowałyby konfliktu):

svn commit -m "" `svn status | grep "^M.*[h|cpp]$" | awk '{print $2}' | tr "\\n" " "`

Zmień / dodaj rozszerzenia [h|cpp]części. W -m ""razie potrzeby dodaj komunikat dziennika między cudzysłowami .

Alan Turing
źródło
1

Niektóre z proponowanych pomysłów można zrealizować w następujący sposób:

W systemie Windows w programie PowerShell

dodaj wszystko do domyślnej listy.ps1

dir -Recurse | ? { -not $_.PSIsContainer } | % { svn cl default $_.FullName }

dodaj do ignorowania list.ps1

 dir file1 ... filN  % { $_.FullName } > ignore-on-commit
 cat .\ignore-on-commit | % { svn cl ignore-on-commit $_ }
 svn add ignore-on-commit

Teraz możesz aliasować svn ci --changelist default, aby nie musieć go określać za każdym razem. Dodatkową korzyścią jest to, że możesz przechowywać listę ignorowanych przy zatwierdzaniu (jeśli chcesz) w repozytorium.

Robię to dla niektórych plików, które są stale odtwarzane, ale rzadko zmieniane ręcznie. Na przykład dodaję numer wersji do moich plików konfiguracyjnych w określonych elementach zastępczych, aby pliki były zmieniane przy każdym zatwierdzeniu, ale ręczne zmiany są rzadkie.

majkinetor
źródło
1

Zmęczyło mnie czekanie, aż to zostanie wbudowane w SVN. Używałem tortoiseSVN z ignorowaniem przy zatwierdzaniu, ale to wyskakuje okno dialogowe użytkownika, którego nie można ukryć z wiersza poleceń, a kiedy uruchamiam skrypt kompilacji i robię filiżankę herbaty, nienawidzę tego, kiedy Wracam, aby odkryć, że czeka na wprowadzenie danych przez użytkownika w 10%.

Oto skrypt PowerShell dla systemu Windows, który zatwierdza tylko pliki, których nie ma na liście zmian:

# get list of changed files into targets
[XML]$svnStatus = svn st -q --xml C:\SourceCode\Monad
# select the nodes that aren't in a changelist
$fileList = $svnStatus.SelectNodes('/status/target/entry[wc-status/@item != "unversioned"]') | Foreach-Object {$_.path};
# create a temp file of targets
$fileListPath =  [IO.Path]::GetTempFileName();
$fileList | out-file $fileListPath -Encoding ASCII
# do the commit
svn commit --targets $fileListPath -m "Publish $version" --keep-changelists 
# remove the temp file
Remove-Item $filelistPath
Ben Curthoys
źródło
1

Aktualizacja skryptu user88044.

Chodzi o to, aby przesłać pliki z listy zmian do niezatwierdzania zmian i uruchomić zły skrypt.

Skrypt wyodrębnia pliki do-not-commit z polecenia: svn status --changelist 'do-not-commit'

#! / bin / bash DIR = "$ (pwd)"

IGNORE_FILES = "$ (status svn --changelist 'do-not-commit' | tail -n +3 | grep -oE '[^] + $')"

dla i w $ IGNORE_FILES; do mv $ DIR / $ i $ DIR / "$ i" _; Gotowe;

svn "$ @";

dla i w $ IGNORE_FILES; do mv $ DIR / "$ i" _ $ DIR / $ i; Gotowe;

Skrypt znajduje się w / usr / bin / svnn (sudo chmod + x / usr / bin / svnn)

status svnn, zatwierdzenie svnn itp ...

Nicolas F.
źródło
1

Możesz skonfigurować listę zmian "ignoruj ​​przy zatwierdzaniu" bezpośrednio z TortoiseSVN. Nie ma potrzeby konfigurowania żadnej innej listy zmian, w tym wszystkich innych plików

1) Kliknij „SVN Commit ...” (nie zatwierdzimy, tylko sposób na znalezienie graficznego menu dla listy zmian) 2) Na liście Kliknij prawym przyciskiem myszy plik, który chcesz wykluczyć. 3) Menu: przejdź do listy zmian> ignoruj ​​przy zatwierdzeniu

Następnym razem, gdy wykonasz zatwierdzenie SVN ... Pliki pojawią się bez zaznaczenia na końcu listy, w kategorii ignoruj ​​przy zatwierdzaniu.

Testowano z: TortoiseSVN 1.8.7, kompilacja 25475-64 bity, 2014/05/05 20:52:12, Subversion 1.8.9, -release

Luney
źródło
1
youps, właśnie zobaczyłem komentarze tjmoore, podające już dobre informacje dla użytkownika tortoiseSVN ... bez wiersza poleceń tortoisesvn.net/docs/release/TortoiseSVN_en/…
luney
Czy to jest zepsute w 1.9?
Jake Hm
1

To już późno w grze, ale znalazłem najbardziej niesamowite polecenie wiersza poleceń dla tego problemu. Gotowe za pomocą basha. Cieszyć się.

svn status | grep -v excluding | sed 's/^A */"/g; s/$/"/g' | tr '\n' ' ' | xargs svn commit -m "My Message"

Ok, więc oto wyjaśnienie polecenia. Niektóre rzeczy będą musiały zostać zmienione w zależności od przypadku użycia.

svn status

Otrzymuję listę wszystkich plików. Wszystkie zaczną się od tych znaków statusu (?,!, A itd.). Każdy jest na osobnych liniach

grep -v excluding

Używam grep do filtrowania listy. Może być używany normalnie (do dołączania) lub z flagą -v (do wykluczania). W tym przypadku służy do wykluczania, a fraza „wyklucza” oznacza to, co zostanie wykluczone.

sed 's/^. */"/g; s/$/"/g'

Teraz usuwam znak statusu i odstępy na początku każdej linii, a następnie cytuję każdą linię, używając seda. Niektóre z moich nazw plików zawierają spacje, stąd cytat.

tr '\n' ' '

Używając tr, zamieniam wszystkie znaki nowej linii na spacje. Teraz cała moja lista plików do zatwierdzenia znajduje się w jednej linii.

xargs svn commit -m "My Message"

Na koniec używam xargs do wykonania polecenia commita z komunikatem. Wykonuje zatwierdzenie i upuszcza moją listę plików w cudzysłowie jako ostatni argument.

W rezultacie wszystko ostatecznie działa tak, jak tego chcę. Wciąż nienawidzę svn za zmuszanie mnie do skakania przez te cholerne obręcze, ale mogę z tym żyć. Zgaduję.

user2223059
źródło
0

Ponieważ miałem dokładnie ten sam problem, a moje wyszukiwanie w Google wciąż nic mi nie dawało, myślę, że znalazłem obejście. Oto, co zrobiłem, wydaje się, że działa dla mnie, ale ponieważ utknąłem na starej wersji SVN (<1.5, ponieważ nie ma opcji --keep-local) i nie jestem w tym ekspertem , Nie jestem pewien, czy to uniwersalne rozwiązanie. Jeśli u Ciebie też to zadziała, daj mi znać!

Miałem do czynienia z instalacją Prestashop, którą dostałem z SVN, ponieważ inne osoby już zaczęły nad nią pracować. Ponieważ ustawienia DB zostały wykonane dla innego serwera, zmieniłem je w jakimś pliku w folderze / config. Ponieważ ten folder był już wersjonowany, ustawienie go w svn: ignore nie zapobiegłoby zatwierdzeniu moich lokalnych modyfikacji w tym folderze. Oto co zrobiłem:

cp config ../cfg_bkp              # copy the files out of the repo
svn rm config                     # delete files both from svn and "physically"
svn propset svn:ignore "config" . # as the files no longer exists, I can add my ignore rule and then...
mv ../cfg_bkp config              # ...bring'em back
svn revert --recursive config     # make svn forget any existing status for the files (they won't be up for deletion anymore)

Teraz mogę uruchomić svn add --force. w katalogu głównym repozytorium bez dodawania mojej konfiguracji, nawet jeśli nie pasuje do wersji repozytorium (myślę, że musiałbym przejść przez to wszystko jeszcze raz, gdybym zmodyfikował to jeszcze raz, nie testowałem). Mogę również zaktualizować svn bez nadpisywania moich plików lub otrzymywania jakichkolwiek błędów.

neemzy
źródło
0

Rozwiązanie, które nie ignoruje zmian we właściwościach katalogu

Próbowałem użyć rozwiązania opartego na changelist, ale mam z nim kilka problemów. Najpierw moje repozytorium zawiera tysiące plików, więc lista zmian do zatwierdzenia jest ogromna, a moje svn statusdane wyjściowe stały się zbyt długie i musiały zostać przeanalizowane, aby były przydatne. Najważniejsze jest to, że chciałem zatwierdzić zmiany, które pochodzą z scalenia, co oznacza, że ​​obejmują one zmiany właściwości. Podczas zatwierdzania listy zmian właściwości svn dołączone do katalogu nie są zatwierdzane, więc musiałem wykonać dodatkowe zatwierdzenie:

svn ci --cl work -m "this commits files from the work changelist only"
svn up
svn ci --depth empty DIR . -m "record merge properties"

Być może będziesz musiał to zrobić dla kilku katalogów (tutaj rejestruję właściwości DIRi bieżącego katalogu .), w zasadzie tych z literą Mw drugiej kolumnie podczas wydawania svn statuspolecenia.

Rozwiązanie

Użyłem łatek i svn patch. W pseudokodzie:

svn diff $IGNORE_FILES > MYPATCH   # get the mods to ignore
svn patch --reverse-diff MYPATCH   # remove the mods
svn ci -m "message"                # check-in files and directory properties
svn patch MYPATCH                  # re-apply the mods

Podobnie jak inne plakaty, w końcu używam skryptu do przechowywania listy plików do zignorowania:

#! /usr/bin/env bash

finish() {
    svn patch MYPATCH               # re-apply the mods
}
trap finish EXIT

IGNORE_FILES="\
sources/platform/ecmwf-cca-intel-mpi.xml \
runtime/classic/platform/ecmwf-cca.job.tmpl \
runtime/classic/platform/ecmwf-cca-intel.xml"

svn diff $IGNORE_FILES > MYPATCH # get the mods to ignore
svn patch --reverse-diff MYPATCH # remove the mods

svn "$@"

Zwykle używałem go z cii revert -R ..

P. Le Sager
źródło
-1

svn:ignore to twoja odpowiedź.

Przykład:

$ svn propset svn:ignore -F .cvsignore .
property 'svn:ignore' set on '.'
Manuel Ferreria
źródło
1
Uwaga, powyższy przykład pokazuje, jak użyć wcześniej skonfigurowanego pliku cvsignore jako danych wejściowych do właściwości svnignore.
Ben Hoffstein
1
no svn: ignore jest tylko dla plików unversion. nie działa z plikami wersji
Sérgio,
1
A także nie jest lokalny. Jest to zmiana właściwości, która zostanie dokonana sama.
Adam Badura
-9
svn propset "svn:ignore" "*.xml" .

*.xmljest wzorzec plików do ignorowania; możesz tu również używać nazw katalogów.

Domy2001
źródło
3
-1, ponieważ nie możesz zignorować pliku, który jest częścią repozytorium.
zellus