Ustvarjanje in nameščanje popravkov

V primeru odprtokodnih projektov (kot je tale) imajo pravice branja skladišča vsi in vsakdo lahko prispeva k projektu. Kako pa se ti prispevki nadzorujejo? Če bi lahko vsakdo objavljal spremembe, bi projekt kmalu postal nestabilen in neuporaben. V takšnem primeru se spremembe pošljejo razvojni ekipi, ki ima pravice za objavljanje, v obliki datoteke popravkov. Ekipa popravek pregleda in ga objavi v skladišču ali pa vrne avtorju.

Datoteke popravkov so poenotene razlike datotek, ki prikazujejo razlike med vašo delovno kopijo in osnovno revizijo.

Ustvarjanje datoteke popravkov

Najprej morate spremembe narediti in jih preizkusiti. Potem namesto ukaza TortoiseSVNObjavi... na nadrejeni mapi uporabite TortoiseSVNUstvari popravek...

Slika 4.63. Okno za ustvarjanje popravkov

Okno za ustvarjanje popravkov

Sedaj izberete datoteke, ki jih želite vključiti v popravek, prav tako, kot to storite ob objavi. Ustvari se ena datoteka, ki vsebuje podatke o vseh spremembah, ki ste jih naredili na izbranih datotekah od zadnje posodobitve iz skladišča.

Stolpce v tem oknu lahko prilagodite enako kot stolpce v oknu Preveri spremembe. Za več informacij preberite “Krajevno in oddaljeno stanje”.

By clicking on the Options button you can specify how the patch is created. For example you can specify that changes in line endings or whitespaces are not included in the final patch file.

Izdelate lahko več popravkov, ki vsebujejo spremembe različnih skupin datotek. Seveda, če izdelate datoteko popravkov, nato naredite še dodatne spremembe in izdelate novo datoteko popravkov, bo ta vsebovala spremembe obeh skupin sprememb.

Shranite datoteko s poljubnim imenom. Datoteke popravkov imajo lahko poljubno končnico, vendar imajo po konvenciji končnico .patch ali .diff. Sedaj lahko datoteko oddate.

Namig

Do not save the patch file with a .txt extension if you intend to send it via email to someone else. Plain text files are often mangled with by the email software and it often happens that whitespaces and newline chars are automatically converted and compressed. If that happens, the patch won't apply smoothly. So use .patch or .diff as the extension when you save the patch file.

Popravek lahko shranite tudi v odložišče namesto v datoteko. Nato ga lahko prilepite v elektronsko sporočilo in ga pošljete v pregled ostalim. Če imate dve delovni kopiji na enem računalniku in želite prenesti spremembe iz ene kopije v drugo, je kopiranje popravka v odložišče pripraven način za izvedbo operacije.

If you prefer, you can create a patch file from within the Commit or Check for Modifications dialogs. Just select the files and use the context menu item to create a patch from those files. If you want to see the Options dialog you have to hold shift when you right click.

Nameščanje datoteke popravkov

Datoteke popravkov se namestijo v delovno kopijo. Nameščanje je potrebno narediti na istem nivoju map, na katerem je bil popravek narejen. Če ne veste, kateri nivo to je, poglejte v prvo vrstico datoteke popravkov. Primer: če je prva datoteka popravka doc/source/english/chapter1.xml in je prva vrstica popravka Index: english/chapter1.xml, potem morate popravek namestiti na mapo doc/source/. Vendar, če le delate na pravi delovni kopiji, bo TSVN zaznal, da ste izbrali napačen nivo in vam bo predlagal pravilnega.

Da bi namestili datoteko popravkov na delovni kopiji, morate imeti v skladišču vsaj pravice za branje. Razlog je v tem, da mora imeti program za spajanje referenco na revizijo, ki jo je oddaljeni programer uporabil kot osnovo.

From the context menu for that folder, click on TortoiseSVNApply Patch... This will bring up a file open dialog allowing you to select the patch file to apply. By default only .patch or .diff files are shown, but you can opt for All files. If you previously saved a patch to the clipboard, you can use Open from clipboard... in the file open dialog. Note that this option only appears if you saved the patch to the clipboard using TortoiseSVNCreate Patch.... Copying a patch to the clipboard from another app will not make the button appear.

Če ima datoteka popravkov končnico .patch ali .diff, lahko najno kliknete z desnim gumbom in izberete TortoiseSVNNamesti popravek.... V tem primeru boste povprašani po lokaciji delovne kopije.

Ti dve metodi omogočata isti postopek na različna načina. S prvo metodo izberete delovno kopijo in poiščete datoteko popravkov, z drugo pa izberete datoteko popravkov in poiščete delovno kopijo.

Ko ste izbrali datoteko popravkov in lokacijo delovne kopije, TortoiseMerge začne postopek spajanja sprememb iz datoteke popravkov v delovno kopijo. Majhno okno vsebuje seznam datotek, ki so bile spremenjene. Dvokliknite na vsako izmed njih, preglejte spremembe in shranite spojene datoteke.

Popravek oddaljenega sodelavca je sedaj nameščen na vaši delovni kopiji, ki jo morate objaviti, da bodo lahko vsi uporabniki dostopali do sprememb v skladišču.