Kaip ignoruoti katalogą su SVN?

Aš ką tik pradėjau naudoti SVN ir turiu talpyklų katalogą, kurio nereikia valdant šaltinį. Kaip ignoruoti visą katalogą / aplanką su SVN?

OS X ir komandų eilutėje naudoju versijas ir TextMate .

706
22 сент. Gileanas surengė rugsėjo 22 d. 2008-09-22 19:55 '08 at 7:55 pm 2008-09-22 19:55
@ 23 atsakymai

Nustatykite svn:ignore pagrindinio katalogo ypatybę:

 svn propset svn:ignore dirname . 

Jei turite keletą dalykų, kuriuos reikia ignoruoti, atskirkite juos naujuoju eilutės simboliu nuosavybės verte. Tokiu atveju lengviau keisti nuosavybės vertę naudojant išorinį redaktorių:

 svn propedit svn:ignore . 
738
22 сент. Atsakymas Jason Cohen Rugsėjo 22 d 2008-09-22 19:56 '08, 19:56, 2008-09-22 19:56

Čia yra katalogo struktūros pavyzdys:

 \project \source \cache \other 

Kai project matote, kad jūsų talpyklų katalogas nebuvo pridėtas ir rodomas kaip toks.

 > svn st M source ? cache 

Jei norite nustatyti ignoravimo savybę, atlikite

svn propset svn: ignoruoti talpyklą

kur svn:ignore yra jūsų nustatyto turto pavadinimas, cache yra turto vertė, a . Tai yra katalogas, kuriame nustatote šią savybę. Jis turi būti pagrindinio katalogo, kuriame yra cache katalogas, kuriam reikia nuosavybės.

border=0

Norėdami patikrinti, kurios ypatybės nustatytos:

 > svn proplist Properties on '.': svn:ignore 

Jei norite pamatyti svn:ignore reikšmę svn:ignore :

 > svn propget svn:ignore cache 

Jei norite pašalinti anksčiau nustatytas ypatybes:

 svn propdel svn:ignore 
386
22 сент. Atsakymas suteiktas rugsėjo 22 d 2008-09-22 20:06 '08 at 8:06 pm 2008-09-22 20:06

Svarbu pažymėti:

Komandinėje eilutėje negalite naudoti

 svn add * 

Jis taip pat prideda ignoruojamus failus, nes komandų eilutė bus išplėsta * , todėl svn add prisiima, kad norite įtraukti visus failus. Todėl naudokite tai:

 svn add --force . 
127
08 мая '09 в 2:38 2009-05-08 02:38 atsakymą pateikė „ binco “ gegužės 08 d. , 09:38 , 2009-05-08 02:38

Kadangi praleidau šiek tiek laiko bandydamas tai padaryti, reikia pažymėti, kad jei failai jau yra SVN, turite juos svn delete ir pakeisti svn:ignore nuosavybę.

Žinau, kad atrodo akivaizdu, bet jie nuolat rodomi kaip ? Gavau svn status mano sąraše, kai maniau, kad jis tiesiog ignoruoja juos vietoje.

78
30 окт. Atsakyti Kai 30 oct. 2009-10-30 18:02 '09 18:02 2009-10-30 18:02

Jei norite išplėsti bitą, jei tai darote su svn komandų eilutės įrankiu, kurį norite įvesti:

 svn propedit svn:ignore path/to/dir 

kuris atveria jūsų teksto redaktorių, tada įveskite „*“, kad ignoruotų viską viduje, ir įrašykite + uždaryti - tai patys katalogas bus įtrauktas į svn, bet ignoruoti visus viduje esančius failus, ignoruoti katalogą, naudokite tėvų kelią ir įveskite pavadinimą failą. Po išsaugojimo paleiskite naujinimą („svn up“) ir patikrinkite atitinkamą kelią.

67
22 сент. atsakymas, kurį pateikė Greg Sep 22 2008-09-22 20:00 „08 08:00 val. 2008-09-22 20:00

Nustatykite svn:ignore nuosavybę pagrindiniame kataloge:

 $ cd parentdir $ svn ps svn:ignore . 'cachedir' 

Tai perrašys bet kokią dabartinę svn:ignore reikšmę. Redaguojate vertę naudodami:

 $ svn pe svn:ignore . 

Kas atvers redaktorių. Galite pridėti kelis šablonus, po vieną kiekvienai eilutei.

Dabartinę vertę galite peržiūrėti naudodami:

 $ svn pg svn:ignore . 

Jei naudojate GUI, tam reikia turėti meniu parinktį.

28
22 сент. Atsakymą pateikė Frank Szczerba rugsėjo 22 d 2008-09-22 20:02 '08 8:02 pm 2008-09-22 20:02

Dėkojame už visus aukščiau išvardintus įnašus. Aš tiesiog norėjau pasidalinti kai kokia papildoma informacija iš mano patirties, ignoruojant failus.


Kai aplankai jau yra versijos valdymo

Po svn importavimo ir svn co failų, kuriuos paprastai atliekame pirmą kartą.

Visi runtime caching, poaplankiai bus redaguoti. todėl prieš svn ps svn: ignoruoti, turime pašalinti ją iš saugyklos.

Naudojant SVN 1.5 versiją, galime naudoti svn del --keep-local your_folder , bet ankstesnėje versijoje mano sprendimas yra:

  • svn eksportuoja švarią jūsų aplankų kopiją (nėra paslėptų aplankų .svn )
  • svn vietinė ir saugykla
  • svn ci
  • Nukopijuokite atgal aplankus
  • Padarykite svn st ir patvirtinkite, kad aplankai pažymėti „?“
  • Dabar mes galime padaryti svn ps pagal sprendimus.

Jei turime ignoruoti daugiau nei vieną aplanką

  • Viename kataloge yra du aplankai, kuriuos reikia įdiegti kaip svn:ignore
  • Jei įdiegsime vieną, kitas bus pašalintas.
  • Tuomet mums įdomu, ko mums reikia svn pe

svn pe turės redaguoti tekstinį failą, ir, jei reikia, galite naudoti šią komandą, kad įdiegtumėte teksto redaktorių naudojant vi

 export SVN_EDITOR=vi 
  • Su „o“ galite atidaryti naują eilutę.
  • Įveskite visus aplankų pavadinimus, kuriuos norite ignoruoti.
  • Paspauskite mygtuką „esc“, kad išeitumėte iš redagavimo režimo.
  • Įveskite „: wq“, tada paspauskite „ Enter“, kad išsaugotumėte ir išeitumėte.

Failas atrodo taip:

 runtime cache attachments assets 
20
13 сент. Atsakymą pateikė Elliot Yap rugsėjo 13 d 2011-09-13 06:26 '11 at 6:26 am 2011-09-13 06:26

Pirmiausia pašalinkite jį ...

Jei jūsų foo katalogas jau yra versijos valdyme, pirmiausia jį ištrinkite:

 svn rm --keep-local foo 

... tada ignoruokite:

 svn propset svn:ignore foo . 
16
27 июня '13 в 18:16 2013-06-27 18:16 atsakymas pateikiamas matais, sudegina birželio 27 d. 13 val. 18:16 2013-06-27 18:16

... ir jei norite ignoruoti keletą katalogų (pvz., build/ temp/ ir *.tmp ), galite tai padaryti dviem etapais (ignoruodami pirmąjį ir redaguodami ignoravimo ypatybes (žr. kitus atsakymus čia), arba galite rašyti ką nors kažkas panašaus

 svn propset svn:ignore "build temp *.tmp" . 

komandinėje eilutėje.

12
17 нояб. Atsakymą pateikė DerMike lapkričio 17 d. 2010-11-17 13:25 '10, 13:25, 2010-11-17 13:25

Jei naudojate konkretų SVN „ TortoiseSVN“ klientą, tada, kai įsipareigojate, galite pasirinkti dešiniuoju pelės klavišu ir pasirinkti „Įtraukti į ignoruojamą sąrašą“.

11

Man sunku ignoruoti įdėtus katalogus; Viršutinis katalogas, kurį norėjau ignoruoti, nebūtų rodomas su „svn status“, bet visais subdirectories. Tai tikriausiai akivaizdu visiems kitiems, bet maniau, kad pasidalinsiu ja:

Pavyzdys:

/ kamieno

/ trunk / cache

/ trunk / cache / subdir1

/ trunk / cache / subdir2

 cd /trunk svn ps svn:ignore . /cache cd /trunk/cache svn ps svn:ignore . * svn ci 
5
04 окт. Atsakymas pateikiamas „ brainycat 04 oct. 2010-10-04 13:22 '10, 13:22, 2010-10-04 13:22

„Bash oneliner“ dėl kelių ignoravimo:

 svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath" 
4
05 сент. Atsakymas, kurį pateikė Fedir RYKHTIK 05 Sep. 2011-09-05 12:24 2011-11-09 12:24 12:24

SAUGYKITE DIREKTORIUS, KURIAS GAUTI AIRS:

  • Tai ištrins failus iš saugyklos, bet išsaugos katalogą pagal SVN valdiklį:

svn ištrinti --keep-local path / directory_to_keep / *

  1. tada nustatykite ignoruoti katalogą (ir visą turinį):

svn propset svn: ignoruoti "*" kelią / directory_to_keep

3
14 июня '15 в 1:39 2015-06-14 01:39 atsakymas pateikiamas „ sheasie“ birželio 14 d., 15 val. 1:39 2015-06-14 01:39

Jasono atsakymas bus triukas. Tačiau vietoj diegimo svn: ignoruoti "." talpyklos kataloge galite įtraukti „cache“ pagrindiniame svn kataloge: ignoruoti, jei ne visada yra cache katalogas. Tai darau keliose „atmesti“ aplankuose.

3
22 сент. atsakymas pateikiamas harpo 22 sep . 2008-09-22 20:02 '08 8:02 pm 2008-09-22 20:02

„Ačiū“ svn už tokį bjaurus, fiktyvų ir sudėtingą būdą ignoruoti failus.

Taigi, parašiau scenarijų svn-ignore-all :

 #!/bin/sh # svn-ignore-all # usage: # 1. run svn status to see what is going on at each step # 2. add or commit all files that you DO want to have in svn # 3. remove any random files that you don't want to svn:ignore # 4. run this script to svn:ignore everything marked '?' in output of `svn status` svn status | grep '^?' | sed 's/^? *//' | while read f; do d=`dirname "$f"` b=`basename "$f"` ignore=`svn propget svn:ignore "$d"` if [ -n "$ignore" ]; then ignore="$ignore " fi ignore="$ignore$b" svn propset svn:ignore "$ignore" "$d" done 

Be to, norėdami ignoruoti konkretų failų / kelių sąrašą, galime naudoti šią parinktį svn-ignore . Tikriausiai svn-ignore - viskas turėtų būti panaši į xargs svn-ignore.

 #!/bin/sh # svn-ignore # usage: # svn-ignore file/to/ignore ... for f; do d=`dirname "$f"` b=`basename "$f"` ignore=`svn propget svn:ignore "$d"` if [ -n "$ignore" ]; then ignore="$ignore " fi ignore="$ignore$b" svn propset svn:ignore "$ignore" "$d" done 

Dar vienas dalykas: paprastai užteršiu savo svn-checkout su daugybe atsitiktinių failų. Kai atėjo laikas įvykdyti, aš perkeliu šiuos failus į „senąjį“ pakatalogį ir pasakysiu svn ignoruoti „senąjį“.

3
08 окт. atsakymas Sam Watkins 08 spalis 2013-10-08 09:20 '13, 9:20, 2013-10-08 09:20

Jei jūsų projekto katalogas yra pavadintas / Projektas, o jūsų talpyklų katalogas yra pavadintas „Projektas / talpykla“, tada turite nustatyti subversion nuosavybę į / Projektą. Turto pavadinimas turėtų būti „svn: ignore“, o turto vertė turėtų būti „Cache“.

Daugiau informacijos apie ypatybes žr.

3
22 сент. Atsakymą pateikė „ The Digital Gabeg“ rugsėjo 22 d 2008-09-22 20:01 '08 at 8:01 pm 2008-09-22 20:01

Jei naudojate SVN sąsają, pvz., „TortoiseSVN“ arba kai kurią IDE integraciją, tas pats meniu turi būti ignoruojamas, pvz.

2
22 сент. Chris Marasti-Georg atsakymas 22 rugsėjis 2008-09-22 20:01 '08 at 8:01 pm 2008-09-22 20:01

Nustatykite svn: ignoruoti turtą. Dauguma UI svn įrankių turi būdą tai padaryti, taip pat nuorodą apie komandų eilutę.

1
22 сент. Joe Skora atsakymas rugsėjo 22 d 2008-09-22 19:56 '08, 19:56, 2008-09-22 19:56

Kadangi naudojate versijas, tai tikrai labai paprasta:

  • Peržiūrėkite išspausdintą kopiją
  • Jei norite ignoruoti, spustelėkite katalogą
  • „Ignoruoti“ lauke dešinėje spustelėkite „Redaguoti“
  • Įveskite *. * ignoruoti visus failus (arba * .jpg tik jpg failams ir tt).
1
24 июля '12 в 4:45 2012-07-24 04:45 atsakymas duotas Andrew liepos 12 d., 12 val

Taip pat stebėkite, kaip nukrenta. Radau, kad images/* įtraukimas į ignoruojamų nustatymų failą ignoruoja ./images/ . Kai svn status -u , ar jis vis dar parodė ? images ? images . Taigi, aš tiesiog pakeitiau ignoravimo nustatymą į images be šlyties. Išsiuntė būsenos patikrinimą ir išvalytas.

1
24 сент. atsakymas pateikiamas cdmo 24 Sep. 2012-09-24 18:22 „12 at 18:22 pm 2012-09-24 18:22

„Eclipse“ išsprendė taip:

Visų pirma, sinchronizuokite aplanką su projektu:

komanda → sinchronizuoti

Kitame komandų rodinyje galite matyti visus išteklius, kuriuos galite priskirti SVN serveriui.

Taigi, pasirinkite ištekliaus aplanką, kurį norite ignoruoti, ir tada galite jį ignoruoti

Komanda

-> pridėti prie svn:ignore .

Po to patvirtinimo >

Pavyzdžiui, jei noriu ignoruoti tikslinį aplanką ir jų .class išteklius, aš sinchronizuosiu ir sinchronizacijos rodinyje pasirinksiu aplanką. Po to pasirinksiu

Komanda-> pridėti

prieš svn:ignore , ir tada patvirtinu pirmąjį variantą patvirtinimo >

1
10 марта '14 в 16:12 2014-03-10 16:12 atsakymas duotas amartinui7 kovo 10 d. 14, 16:12 2014-03-10 16:12

Praradęs daug laiko išmokti, kaip tai padaryti, nusprendžiau paskelbti, sunku rasti vertingą paaiškinimą.

Pirmiausia leiskite mėginio struktūrai

$ svn st? projektas / kamienas / tikslas? projektas / trunk / myfile.x

1 - pirmiausia nustatėte redaktorių, mano atveju vim export SVN_EDITOR = vim

2 - „svn propedit svn: ignore project / trunk /“ atidarys naują failą, o mūsų atveju galite pridėti failus ir pakatalogį, „target“ išsaugoti ir uždaryti failą ir darbą

$ svn st? projektas / trunk / myfile.x

ačiū

0
19 февр. Atsakymą pateikė Bruno Marinho vasario 19 d. 2014-02-19 23:08 '14, 23:08, 2014-02-19 23:08

Kiti klausimai dėl etikečių arba Užduoti klausimą