SVN checkout ignoruj folder

Czy mogę zignorować folder na svn checkout? Muszę zignorować folder DOCs przy kasie na moim serwerze kompilacji.

Edit: ignorowanie zewnętrznych nie wchodzi w grę. Mam kilka elementów zewnętrznych, których potrzebuję.

Author: Zoe, 2008-10-10

10 answers

Nie możesz bezpośrednio ignorować folderów przy kasie, ale możesz używać skąpe checkouts w svn 1.5. Na przykład:

$ svn co http://subversion/project/trunk my_checkout --depth immediates

Spowoduje to sprawdzenie plików i katalogów z twojego trunku projektu do 'my_checkout' , ale nie spowoduje rekurencji w tych katalogach. Eg:

$ cd my_checkout && ls
bar/ baz foo xyzzy/

Następnie, aby uzyskać zawartość 'bar' w dół:

$ cd bar && svn update --set-depth infinity
 99
Author: Jon Topper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 11:44:29

Tak, możesz używać SVN 1.6. Najpierw musisz wykonać zamówienie, a następnie zaznaczyć folder do wykluczenia, a następnie usunąć niechciany folder.

svn checkout http://www.example.com/project
cd project
svn update --set-depth=exclude docs
rm -fr docs

Od teraz wszelkie aktualizacje kopii roboczej nie będą ponownie wypełniać folderu Dokumenty.

Zobacz http://blogs.collab.net/subversion/2009/03/sparse-directories-now-with-exclusion / i http://subversion.apache.org/docs/release-notes/1.6.html#sparse-directory-exclusion Po Więcej Szczegółów.

Tom

 74
Author: tommy_turrell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-09 14:03:05

Z wersjami przed 1.5 odkryłem, że jeśli kasujesz tylko top most folder, a następnie selektywnie aktualizujesz, od tego czasu aktualizacje działają tylko na to, co sprawdziłem. Ie.

svn co -N foo
cd foo
svn up -N bar
svn up

Flaga-N sprawia, że operacja nie jest rekurencyjna. Powyższe nie sprawdzi niczego innego na poziomie foo, np. powiedzmy, że istnieje folder lala, końcowy svn up nie sprawdzi tego folderu, ale zaktualizuje bar.

Ale w późniejszym czasie możesz {[3] } i tym samym dodać go do kasa.

Prawdopodobnie działa to również z 1.5.

 9
Author: mxcl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 11:54:42

Jest to w kliencie TortoiseSVN 1.7.1 (może być również dostępny w niektórych starszych wersjach):

  • SVN checkout -- > Wybierz adres URL repozytorium

  • Kliknij na "Checkout Items" (w sekcji Checkout Depth) i wybierz tylko wymagane foldery!

 5
Author: gammay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 04:55:51

Możesz umieścić folder docs w zewnętrznym repozytorium, a następnie użyć svn checkout --ignore-externals.

 4
Author: John Millikin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-10 19:57:00

Tak, Subversion 1.5 ma funkcję o nazwie Sparse checkouts , która może robić dokładnie takie rzeczy.

 4
Author: Greg Hewgill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-29 09:44:57

Znalazłem to pytanie szukając sposobu, aby sprawdzić Źródła WebKit, wykluczając testy regresyjne. Skończyło się na tym, że:

svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit \
  --depth immediates

cd WebKit
find . \
  -maxdepth 1 -type d \
  -not -name '.*' \
  -not -name '*Tests' \
  -not -name 'Examples' \
  -not -name 'Websites' \
  | (while read SUBDIR; do svn update --set-depth infinity "$SUBDIR"; done)

Uwaga możesz zmienić wyłączenia według własnego uznania, ale .* zaleca się pominięcie katalogu roboczego (który jest już aktualny) i wszystkich .katalogi svn.

 3
Author: rgov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 05:39:33

Niedawno rozwiązałem to samo zadanie. Chodzi o to, aby uzyskać natychmiastową listę folderów/plików w repozytorium z pominięciem potrzebnych wpisów, a następnie sprawdzić pozostałe foldery i zaktualizować natychmiastowe pliki, jeśli takie istnieją. Oto rozwiązanie:

    # Path to the svn repository to be checked out
rpath=https://svn-repo.company.com/sw/trunk/ && \
    # This files are to be excluded (folders are ending with '/')
    # this is a regex pattern with OR ('|') between enties to be excluded
excludep='docs_folder/tests_folder/|huge_folder/|file1|file2' && \
    # Get list of the files/folders right under the repository path
filtered=`svn ls $rpath | egrep -v $excludep` && \
    # Get list of files out of filtered - they need to be 'uped'
files=`echo $filtered | sed 's| |\n|g' | egrep '^.*[^/]$'` && \
    # Get list of folders out of filtered - they need to be 'coed'
folders=`echo $filtered | sed 's| |\n|g' | egrep '^.*[/]$'` && \
    # Initial nonrecursive checkout of repository - just empty
    # to the current (./) working directory
svn co $rpath ./ --depth empty && \
    # Update the files
svn up $files &&\
    # Check out the all other folders finally.
svn co `echo $folders | sed "s|\<|$rpath|g"`

Zmień na źródłowy katalog roboczy. Skopiuj polecenia. Wklej. Zmień odpowiedni adres URL i wyklucz wzorzec. Uruchom polecenie.

Dzięki,

 2
Author: bv.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-13 20:11:13

Nie, ignoruj służy tylko do dodawania plików.
Możesz użyć sparse checkouts (jeśli używasz svn 1.5)

 1
Author: Peter Parker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-10 19:56:03

Jak wspomnieli inni, możesz po prostu użyć właściwości svn: externals, a następnie opcji --ignore-externals podczas realizacji zakupu. Należy jednak zauważyć, że svn: externals nie musi koniecznie odwoływać się do innego repozytorium. Może to być odniesienie do innego folderu w tym samym repo.

 1
Author: Nik Reiman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 09:26:05