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ę.
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
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
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.
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!
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
.
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.
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.
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,
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)
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.
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