Subversion sallii tiedostojen ja kansioiden uudelleen nimeämisen ja siirtelyn. Tästä syystä TortoiseSVN-alivalikossa on komennot poistamista ja uudelleen nimeämistä varten.
Käytä komentoa
→ poistaaksesi tiedostoja tai kansioita arkistosta.Kun poistat tiedoston tai kansion komennolla ”muutettu” -kuvakepäällystä. Aina arkistotoimitukseen saakka voit saada tiedoston takaisin suorittamalla komennon → sen sisältävälle kansiolle.
→ , se häviää heti työkopiostasi ja merkitään poistettavaksi arkistosta seuraavan toimituksen yhteydessä. Tiedoston sisältävä kansio näyttääJos haluat poistaa kohteen arkistosta, mutta säilyttää sen paikallisesti versioimattomana tiedostona/kansiona, käytä komentoa Shift-näppäin painettuna, kun napsautat hiiren oikeaa näppäintä Resurssienhallinnan oikeassa paneelissa.
→ . Nähdäksesi komennon sisältävän laajennetun kontekstivalikon, sinun on pidettäväJos tiedosto poistetaan Resurssienhallinnan avulla käyttämättä TortoiseSVN-kontekstivalikkoa, toimitusikkuna näyttää sen ja sallii poiston versiohallinnasta ennen toimitusta. Jos kuitenkin päivität työkopiotasi, Subversion havaitsee puuttuvan tiedoston ja korvaa sen viimeisimmällä arkistoversiolla. Jos joudut poistamaan versioidun tiedoston, käytä aina komentoa
→ jotta Subversionin ei tarvitse arvata, mitä todella haluat tehdä.Jos olet poistanut tiedoston tai kansion ja ehtinyt jo toimittaa muutokset arkistoon, niin tavallinen apukeino,
→ ei enää toimi. Mutta ei tiedosto tai kansio tietenkään ole hävinnyt. Jos tiedät version, jossa tiedosto/kansio poistettiin (ja jollet tiedä, katso lokista), avaa arkistoselain ja vaihda siihen versioon. Valitse sitten poistamasi tiedosto/kansio, napsauta hiiren oikeaa näppäintä ja anna komento → . Valitse kohteeksi kopioinnille työkopiosi.Mikäli on tarpeen nimetä tiedosto tai kansio uudelleen, käytä komentoa
→ . Syötä kohteelle uusi nimi ja olet valmis.Jos haluat siirtää tiedostoja työkopion sisällä, ehkäpä eri alikansioon, raahaa ne käyttäen hiiren oikeaa näppäintä:
valitse siirrettävät tiedostot ja kansiot
Oikea-raahaa ne uuteen paikkaan työkopion sisällä
Vapauta hiiren oikea näppäin
anna kontekstivalikossa komento
→Koska uudelleennimeämiset ja siirrot tehdään komentoparina poista+lisää, sinun on toimitettava arkistoon uudelleen nimetyn/siirretyn tiedoston yläkansio, jotta siirron/uudelleennimeämisen poistettu osa näkyy toimitusikkunassa. Jos et toimita tätä poistettua osaa, se säilyy arkistossa, ja kun työtoverisi päivittävät työkopionsa, vanhaa tiedostoa ei poisteta. Toisin sanoen työkopiot sisältävät molemmat, sekä uuden että vanhan kopion.
Siniun täytyy toimittaa kansion uudellleennimeäminen arkistoon ennen kuin muutat kansion sisältämiä tiedostoja, muuten työkopiosi voi mennä todella sekaisin.
Toinen keino tiedostojen kopiointiin tai siirtämiseen on käyttää Windowsin kopioi/leikkaa -komentoja. Valitse haluamasi tiedostot, napsauta hiiren oikeata painiketta ja valitse komento
→ . Siirry sitten kohdehakemistoon, napsauta hiiren oikeata painiketta ja valitse komento → . Jos haluat siirtää tiedostoja, käytä komentoa → komennon → sijaan.Voit myös käyttää arkistoselainta kohteiden siirtelyyn. Lue lisää luvusta ”Arkistoselain”.
Ei ole hyvä ajatus käyttää Siirrä tai Nimeä uudelleen -komentoja kohteeseen, joka on luotu svn:externals
-mekanismilla. Tämä poistaisi ulkoisen projektin sen omasta arkistosta, mikä luultavasti sotkisi muiden ihmisten työt. Jos joudut siirtämään ulkoista kohdetta, se kannattaa tehdä tavallisella Resurssienhallinnan siirtokomennolla ja sitten muokata lähde- ja kohdehakemistojen svn:externals
-ominaisuudet kuntoon.
Jos arkisto sisältää jo kaksi tiedostoa, joilla on sama nimi, mutta eri merkkitasot (esim. TEST.TXT
ja test.txt
), et pysty päivittämään tai hakemaan työkopiota tiedostot sisältävästä arkiston hakemistosta Windows-ympäristössä. Vaikka Subversion tukee merkkitasosta riippuvia tiedostonimiä, Windows ei sitä tee.
Tämä tilanne syntyy joskus, kun kaksi kehittäjää toimittaa muutokset arkistoon eri työkopioista, joissa on sama tiedosto eri tavoin nimettynä. Se voi myös sattua, kun tiedostot toimitetaan esim. Linux-työasemasta.
Tällaisessa tapauksessa sinun on päätettävä, kumman tiedoston haluat pitää, ja tuhota (tai nimetä uudelleen) toinen arkistosta.
Paikantimessa https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ on saatavana palvelimen toimintokomento, joka estää toimitukset, joista seuraisi merkkitaso-ongelmia.
Joskus käy niin, että ystävällinen kehitysympäristösi nimeää tiedostoja puolestasi uudestaan esim. osana ohjelman uudelleenjärjestelyä (refactoring), eikä tietenkään kerro tästä Subversionille. Jos päätät toimittaa muutoksesi arkistoon tässä tilanteessa, Subversion tulkitsee, että vanha tiedosto puuttuu ja uusi on versioimaton. Voisit tietenkin ruksata uuden tiedoston saadaksesi sen lisätyksi, mutta menettäisit silloin lokihistorian, koska Subversion ei tiedä, että tiedostot liittyvät toisiinsa.
Parempi keino ratkaista asia on kertoa Subversionille, että kyseessä on oikeastaan uudelleen nimeäminen. Voit tehdä tämän sekä Toimita että Tarkista muutokset -ikkunoista: valitse sekä vanha (puuttuva) ja uusi (versioimaton) nimi sekä anna komento → parittaaksesi tiedostot uudelleennimennäksi.
Tavallisesti ohituslista kannattaa asettaa niin, että kaikki tuotetut tiedostot ohitetaan Subversionissa. Mutta entäpä jos haluat poistaa kaikki ohitetut kohteet esim. rakentaaksesi sovelluksen alusta uudelleen? Tavallisesti tällainen tehdään makefile-tiedostolla tai kehitysympäristön komennolla, mutta joskus tämä ei ole mahdollista, joten on hyödyllistä pystyä nollaamaan tilanne muutenkin.
TortoiseSVN sisältää komennon Shift-näppäin pohjassa oikea-napsauttaessasi hiirellä Resurssienhallinnan oikeassa paneelissa saadaksesi laajennetun kontekstivalikon näkyviin. Komento avaa ikkunan, jossa on lueteltu kaikki kansion sisältämät versioimattomat tiedostot. Voit sitten valita ne tiedostot, jotka haluat poistettavan.
→ juuri tätä tarkoitusta varten. Sinun on pidettäväKun tällaiset kohteet poistetaan, ne siirretään Roskakoriin, joten virheen sattuessa voit yhä palauttaa alkuperäisen tilanteen.