Brisanje, preimenovanje in premikanje

Subversion allows renaming and moving of files and folders. So there are menu entries for delete and rename in the TortoiseSVN submenu.

Slika 4.34. Konteksni meni v Raziskovalcu za datotek pod nadzorom različic

Konteksni meni v Raziskovalcu za datotek pod nadzorom različic


Brisanje datotek in map

Use TortoiseSVNDelete to remove files or folders from Subversion.

When you TortoiseSVNDelete a file or folder, it is removed from your working copy immediately as well as being marked for deletion in the repository on next commit. The item's parent folder shows a modified icon overlay. Up until you commit the change, you can get the file back using TortoiseSVNRevert on the parent folder.

Če želite izbrisati element iz skladišča, vendar ga želite obdržati krajevno kot datoteko/mapo brez različic, uporabite ukaz Razširjeni kontekstni meniIzbriši (ohrani krajevno). Za prikaz razširjenega kontekstnega menija morate držati tipko Shift ob desnem kliku na element v Raziskovalcu.

If an item is deleted via the explorer instead of using the TortoiseSVN context menu, the commit dialog shows those items as missing and lets you remove them from version control too before the commit. However, if you update your working copy, Subversion will spot the missing item and replace it with the latest version from the repository. If you need to delete a version-controlled file, always use TortoiseSVNDelete so that Subversion doesn't have to guess what you really want to do.

Kako dobiti nazaj izbrisane datoteke ali mape

If you have deleted a file or a folder and already committed that delete operation to the repository, then a normal TortoiseSVNRevert can't bring it back anymore. But the file or folder is not lost at all. If you know the revision the file or folder got deleted (if you don't, use the log dialog to find out) open the repository browser and switch to that revision. Then select the file or folder you deleted, right click and select Context MenuCopy to... as the target for that copy operation select the path to your working copy.

Premikanje datotek in map

Če želite datoteko preimenovati, uporabite Kontekstni meni Preimenuj... Vpišite novo ime za element in preimenovanje je opravljeno.

If you want to move files around inside your working copy, perhaps to a different sub-folder, use the right mouse drag-and-drop handler:

  1. izberite datoteke ali mape, ki jih želite premakniti

  2. right drag them to the new location inside the working copy

  3. sprostite gumb miške

  4. v meniju izberite Kontekstni meniSVN - Premakni datoteke pod nadzorom sem

Objavi nadrejeno mapo

Ker je preimenovanje izvedeno kot zaporedni operaciji brisanja in dodajanja, morate narediti objavo na nadrejeni mapi datoteke, da se bo tudi izbrisana datoteka prikazala v oknu za objavo. Če izbrisane datoteke ne objavite, bo le-ta ostala v skladišču in ne bo odstanjena iz delovnih kopij vaših sodelavcev, ko bodo ti posodabljali mapo. V delovni kopiji bodo obe datoteki - tako novo kot staro.

Preimenovanje mape morate objaviti preden začnete spreminjati njeno vsebino, v nasprotnem primeru lahko lahko pride do okvare delovne kopije.

Another way of moving or copying files is to use the Windows copy/cut commands. Select the files you want to copy, right click and choose Context MenuCopy from the explorer context menu. Then browse to the target folder, right click and choose TortoiseSVNPaste. For moving files, choose Context MenuCut instead of Context MenuCopy.

Za premikanje elementov lahko uporabite tudi brskalnik po skladišču. Za več informacij preberite “Brskalnik po skladišču”.

Zunanjih elementov ne premikajte z ukazi Subversion

Ukazov Premakni in Preimenuj ne uporabljajte na mapah, ki imajo nastavljeno lastnost svn:externals. To bi povzročilo izbris zunanjega elementa iz nadrejene mape, kar bi najbrž razjezilo precej uporabnikov. Če želite premakniti zunanjo mapo, uporabite premikanje v Raziskovalcu, nato pa uskladite lastnosti svn:externals nadrejenih map vira in cilja.

Obravnava težav pri imenih datotek zaradi velikih in malih črk

Če se v skladišču že nahajata dve datoteki, ki se razlikujeta samo v velikih in malih črkah (n. pr. TEST.TXT in test.txt), mape, kjer se ti dve datoteki nahajata, na sistemu Windows ne morete posodobiti ali prevzeti. Subversion namreč omogoča ločevanje imen, ki se razlikujejo samo v velikih in malih črkah, sistem Windows pa ne.

Ta situacija je možna, če dva uporabnika iz dveh različnih delovnih kopij objavita datoteko, ki se razlikuje le v velikih in malih črkah. Možna pa je tudi takrat, ko uporabniki uporabljajo operacijski sistem, ki v datotečnem sistemu ločuje velike in male črke, n. pr. Linux.

V takšnem primeru se morate odločiti, katero izmed dveh datotek boste obdržali, drugo pa morate v skladišču izbrisati ali premenovati.

Kako preprečiti dve datoteki z enakima imenoma

There is a server hook script available at: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.

Popravljanje preimenovanj datotek

Včasih vaše prijazno razvojno orodje preimenuje datoteke kot del refaktoriranja in seveda tega ne pove sistemu Subversion. Če poskusite takšne spremembe objaviti, vidite staro datoteko kot manjkajočo in novo kot datoteko brez različic. Lahko bi enostavno dodali datoteko brez različic, vendar bi v tem primeru izgubili zgodovino, saj Subversion ne ve, da sta datoteki povezani.

Boljši način je, da sistemu Subversion poveste, da gre v tem primeru dejansko za preimenovanje datoteke in sicer lahko to storite v oknih Objavi in Preveri posodobitve. Enostavno izberite tako staro datoteko (manjkajočo) kot novo (brez različic) in uporabite Kontekstni meniPopravi premik. S tem datoteki povežete v preimenovanje.

Brisanje datotek brez različic

Običajno nastavite sezname prezrtih elementov v sistemu v Subversion tako, da se prezrejo vse generirane datoteke. Kaj pa, če želite počistiti vse prezrte datoteke, da bi naredili čisto gradnjo? Običajno naredite to v skripti makefile, če pa to skripto razhroščujete ali delate spremembe v sistemu gradnje, je koristno, če lahko delovno kopijo počistite.

TortoiseSVN vam ponuja to možnost z uporabo ukaza Razširjeni kontekstni meniIzbriši datoteke brez različic.... Da vidite razširjeni kontekstni meni, med desnim klikom na mapo v Raziskovalcu držite pritisnjeno tipko Shift. Prikazalo se bo pogovorno okno s seznamom vseh datotek brez različic v delovni kopiji. Izberete lahko tiste, ki jih želite izbrisati.

Pri brisanju elementov se le-te premakne v Koš, tako da jih lahko v primeru napake še vedno pridobite nazaj.