Pogovorno okno Dnevnik

Za vsako objavljeno spremembo vnesite sporočilo dnevniškega zapisa. Tako lahko kasneje ugotovite, katere spremembe ste kdaj naredili in imate podroben pregled celotnega razvojnega procesa.

Pogovorno okno dnevnika pridobi dnevniške zapise in jih prikaže. Zaslon je razdeljen na tri dele.

Pogovorno okno pa naredi še veliko več - ponudi vam kontekstni meni, ki prinaša še več informacij o zgodovini projekta.

Klicanje pogovornega okna dnevniških zapisov

Slika 4.15. Okno dnevnika

Okno dnevnika


Obstaja veliko mest, od koder lahko lahko pokličete okno dnevnika:

  • Iz kontekstnega podmenija TortoiseSVN

  • Iz strani lastnosti

  • Iz pogovornega okna napredka po posodobitvi delovne kopije. V tem primeru Dnevnik prikaže le tiste revizije, ki so se spremenile od zadnje posodobitve.

If the repository is unavailable you will see the Want to go offline? dialog, described in “Nepovezan način”.

Akcije dnevnika

Zgornji del okna vsebuje stolpec Dejanja z ikonami, ki povzemajo, kaj se je v določeni reviziji zgodilo. Obstajajo štiri različne ikone, vsaka je prikazana v svojem stopcu.

Če je v reviziji prišlo do spremembe datoteke ali mape, se v prvem stolpcu prikaže ikona spremenjeno.

Če je bila v reviziji dodana datoteka ali mapa, se v drugem stolpcu prikaže ikona dodano.

Če je bila v reviziji izbrisana datoteka ali mapa, se v tretjem stolpcu prikaže ikona zbrisano.

Če je revizija zamenjala datoteko ali mapo, se v četrtem stolcu prikaže ikona zamenjano.

Pridobivanje dodatnih informacij

Slika 4.16. Zgornji del Dnevnika s kontekstnim menijem

Zgornji del Dnevnika s kontekstnim menijem


Zgornja polovica Dnevnika ponuja kontekstni meni, ki vam omogoča dostop do veliko informacij. Nekateri vnosi v meniju so na voljo le pri datotekah, drugi le pri mapah.

Compare with working copy

Primerjate izbrane revizije z delovno kopijo. Privzeto orodje za razlikovanje je TortoiseMerge, ki je del paketa TortoiseSVN. Če ste zahtevali dnevnik za mapo, se bo prikazal seznam spremenjenih datotek, vi pa boste lahko pregledali narejene spremembe za vsako datoteko posebej.

Compare and blame with working BASE

Okrivite izbrano revizijo in datoteko v delovni osnovi z vizualno primerjavo razlik. Za podrobnejše informacije preberite “Okrivi spremembe”. (velja le za datoteke).

Show changes as unified diff

Pogledate spremembe v izbranih revizijah v obliki poenotene različice (oblika popravkov GNU). Prikaže le razlike in nekaj bližnjih vrstic. Ta oblika je težje berljiva kot vizualna primerjava, vendar prikaže vse spremembe v datoteki v zgoščeni obliki.

Compare with previous revision

Compare the selected revision with the previous revision. This works in a similar manner to comparing with your working copy. For folders this option will first show the changed files dialog allowing you to select files to compare.

Compare and blame with previous revision

Show the changed files dialog allowing you to select files. Blame the selected revision, and the previous revision, and compare the results using a visual diff tool. (folders only).

Save revision to...

Shranite izbrano revizijo datoteke, tako da imate starejšo različico te datoteke. (velja le za datoteke).

Open / Open with...

Odprete izbrano datoteko s privzetim pregledovalnikom ali programom po lastni izbiri. (velja le za datoteke).

Blame...

Okrivite datoteko do izbrane revizije (velja le za datoteke).

Browse repository

Odprete brskalnik po skladišču za ogled izbrane datoteke ali mape, kakršna je bila ob izbrani reviziji.

Create branch/tag from revision

Create a branch or tag from a selected revision. This is useful e.g. if you forgot to create a tag and already committed some changes which weren't supposed to get into that release.

Update item to revision

Update your working copy to the selected revision. Useful if you want to have your working copy reflect a time in the past, or if there have been further commits to the repository and you want to update your working copy one step at a time. It is best to update a whole directory in your working copy, not just one file, otherwise your working copy could be inconsistent.

If you want to undo an earlier change permanently, use Revert to this revision instead.

Revert to this revision

Revert to an earlier revision. If you have made several changes, and then decide that you really want to go back to how things were in revision N, this is the command you need. The changes are undone in your working copy so this operation does not affect the repository until you commit the changes. Note that this will undo all changes made after the selected revision, replacing the file/folder with the earlier version.

If your working copy is in an unmodified state, after you perform this action your working copy will show as modified. If you already have local changes, this command will merge the undo changes into your working copy.

What is happening internally is that Subversion performs a reverse merge of all the changes made after the selected revision, undoing the effect of those previous commits.

If after performing this action you decide that you want to undo the undo and get your working copy back to its previous unmodified state, you should use TortoiseSVNRevert from within Windows Explorer, which will discard the local modifications made by this reverse merge action.

If you simply want to see what a file or folder looked like at an earlier revision, use Update to revision or Save revision as... instead.

Revert changes from this revision

Undo changes from which were made in the selected revision. The changes are undone in your working copy so this operation does not affect the repository at all! Note that this will undo the changes made in that revision only; it does not replace your working copy with the entire file at the earlier revision. This is very useful for undoing an earlier change when other unrelated changes have been made since.

If your working copy is in an unmodified state, after you perform this action your working copy will show as modified. If you already have local changes, this command will merge the undo changes into your working copy.

What is happening internally is that Subversion performs a reverse merge of that one revision, undoing its effect from a previous commit.

You can undo the undo as described above in Revert to this revision.

Merge revision to...

Merge the selected revision(s) into a different working copy. A folder selection dialog allows you to choose the working copy to merge into, but after that there is no confirmation dialog, nor any opportunity to try a test merge. It is a good idea to merge into an unmodified working copy so that you can revert the changes if it doesn't work out! This is a useful feature if you want to merge selected revisions from one branch to another.

Checkout...

Naredite svež prevzem izbrane mape in izbrane revizije. S tem se prikaže okno, v katerem potrdite naslov URL in revizijo in izberete lokacijo za prevzem.

Export...

Izvozite izbrane datoteke/mape v izbrani reviziji. Pokaže se pogovorno okno z naslovom URL in revizijo, kjer vnesete še lokacijo izvoza.

Edit author / log message

Uredite sporočilo dnevniškega zapisa in avtoja v predhodni objavi. Za dodatne informacije preberite “Spreminjanje sporočila dnevniškega zapisa in avtorja”.

Show revision properties

View and edit any revision property, not just log message and author. Refer to “Spreminjanje sporočila dnevniškega zapisa in avtorja”.

Copy to clipboard

Prekopirate podrobnosti dnevnika izbranih revizij na odložišče. S tem prekopirate številko revizije, avtorja, datum, sporočilo in seznam spremenjenih elementov za vsako revizijo.

Search log messages...

Iščete po sporočilih dnevniških zapisov. Iskanje poteka po dnevniških zapisih, ki jih vnesete, in po povzetkih akcij, ki jih ustvari Subversion in so prikazani v spodnjem delu okna. Iskanje ni občutljivo na velike in male črke.

Slika 4.17. Kontekstni meni v zgornjem delu okna v primeru dveh izbranih revizij

Kontekstni meni v zgornjem delu okna v primeru dveh izbranih revizij


Če izberete dve reviziji naenkrat (z uporabo tipke Ctrl), se kontekstni meni spremeni in ponudi manj možnosti. Lahko:

Compare revisions

Primerjate izbrani reviziji z grafičnim orodjem za razlikovanje. Privzeto orodje je TortoiseMerge, ki se namesti hkrati z orodjem TortoiseSVN.

Če izberete to možnost za mapo, se pojavi novo okno, ki vsebuje seznam datotek, za katere lahko pogledate spremembe. Več o primerjanju revizij si lahko preberete v “Primerjanje map”.

Blame revisions

Okrivite dve reviziji in primerjate rezultate z grafičnim orodjem za razlikovanje. Za več informacij preberite “Okrivi spremembe”.

Show differences as unified diff

Pogledate razlike med izbranima revizijama v obliki poenotene razlike. Deluje za datoteke in mape.

Copy to clipboard

Skopirate sporočila dnevniških zapisov na odložišče, kot je to opisano zgoraj.

Search log messages...

Iščete med sporočili dnevniških zapisov, kot je opisano zgoraj.

Če izberete več revizij (z uporabo tipk Ctrl ali Shift), se v kontekstnem meniju pojavi možnost, ki vam omogoča povrnitev vseh sprememb, ki so bile narejene v teh revizijah. To je najlažji način, kako povrniti spremembe iz večih revizij v eni potezi.

Izberete pa lahko tudi spajanje izbranih revizij v drugo delovno kopijo, kot je opisano zgoraj.

If all selected revisions have the same author, you can edit the author of all those revisions in one go.

Slika 4.18. Kontekstni meni spodnjega dela Dnevnika

Kontekstni meni spodnjega dela Dnevnika


Spodnji del dnevnika prav tako vsebuje kontekstni meni, s katerim lahko

Show changes

Prikažete spremembe, ki so bile narejene v izbrani reviziji izbrane datoteke. Ta možnost je na razpolago le za spremenjene datoteke.

Blame changes

Okrivite izbrano revizijo in predhodnjo revizijo izbrane datoteke in prikažete razlike z grafičnim orodjem za razlikovanje. Za več informacij preberite “Okrivi spremembe”.

Show as unified diff

Show file changes in unified diff format. This context menu is only available for files shown as modified.

Open / Open with...

Odprete izbrano datoteko s privzetim pregledovalnikom ali programom po lastni izbiri.

Blame...

Opens the Blame dialog, allowing you to blame up to the selected revision.

Revert changes from this revision

Povrnte spremembe, narejene na izbrani datoteki izbrane revizije.

Show properties

Pogledate lastnosti Subversion za izbran element.

Show log

Prikažete dnevnik za izbrano datoteko.

Get merge logs

Show the revision log for the selected single file, including merged changes. Find out more in “Zmožnosti sledenja spajanja”.

Save revision to...

Shranite izbrano revizijo datoteke, tako da imate starejšo različico te datoteke.

Namig

Mogoče ste opazili, da uporabljamo izraza razlike in spremembe. Kakšna je razlika?

Številke revizij v sistemu Subversion pomenijo dve stvari. Revizija predstavlja stanje skladišča v nekem trenutku, predstavlja pa tudi seznam sprememb, ki so ustvarile to revizijo. N. pr. “Narejeno v r1234” pomeni, da spremembe, narejene v reviziji 1234, ustvarijo funkcionalnost X. Da ponazorimo, kateri pomen imamo v mislih, uporabljamo dva izraza.

Če izberete revizijo N in M, vam kontekstni meni ponuja možnost prikaza razlik med tema dvema revizijama. Ekvivalenten ukaz pri delu z odjemalcem za ukazno vrstivo je diff -r M:N.

Če izberete samo revizijo N, vam kontekstni meni ponuja prikaz sprememb, opravljenih v tej reviziji. Ekvivalentna ukaza pri uporabi odjemalca za ukazno vrstico sta diff -r N-1:N in diff -c N.

Spodnja polovica prikazuje vse spremenjene datoteke v vseh izbranih revizijah. Kontekstni meni ponuja prikaz sprememb.

Pridobivanje dodatnih dnevniških zapisov

Okno Dnevnik ne pokaže vedno vseh sprememb. Razlogi so naslednji:

  • V večjih skladiščih se lahko nahaja stotine ali tisoče sprememb. Pridobivanje informacij o vseh spremembah lahko traja dolgo časa. Običajno pa vas zanimajo le zadnje spremembe. Privzeta nastavitev števila dnevniških zapisov za prikaz je 100, vendar lahko to vrednost spremenite v TortoiseSVNNastavitve (“Pogovorna okna 1”),

  • Če je potrjeno polje Ustavi ob kopiranju/preimenovanju, Dnevnik prikaže le revizije do trenutka, ko je bila izbrana datoteka ali mapa prekopirana iz neke druge lokacije v skladišču. To je uporabno, kadar pregledujete veje (ali oznake), saj se prikažejo le spremembe, ki so bile narejene na tej veji.

    Običajno boste to možnost pustili izklopljeno. TortoiseSVN si zapomni stanje potrditvenih polj, tako da bo upošteval vaše nastavitve.

    Kadar je okno Prikaži dnevnik prikazano iz okna za spajanje, je to polje vedno potrjeno. Vzrok je v tem, da spajanje večinoma deluje na spremembah na vejah, zato uporaba map pred korensko mapo v tem primeru nima nobenega smisla.

    Upoštevajte, da Subversion izvaja preimenovanje s parom kopirane in izbrisane datoteke, zato bo preimenovanje datoteke ali mape povzročilo, da se v tem primeru dnevniški zapis ustavi, če je ta možnost vklopljena.

Če želite videti več dnevniških zapisov, kliknite na gumb Naslednjih 100 in prikazalo se bo naslednjih 100 zapisov. Postopek lahko ponovite poljubno mnogokrat.

Zraven tega gumba se nahaja večfunkcijski gumb, ki si zapomni zadnjo akcijo, za katero je bil uporabljen. Kliknite na puščico, če želite videti še ostale akcije, ki so vam na razpolago.

Uporabite gumb Pokaži obseg..., če želite videti le določen obseg revizij. V okno boste vnesli začetno in končno revizijo.

Uporabite gumb Prikaži vse, če želite videti vse dnevniške zapise od končne revizije HEAD do revizije 1.

Current Working Copy Revision

Because the log dialog shows you the log from HEAD, not from the current working copy revision, it often happens that there are log messages shown for content which has not yet been updated in your working copy. To help make this clearer, the commit message which corresponds to the revision you have in your working copy is shown in bold.

When you show the log for a folder the revision highlighted is the highest revision found anywhere within that folder, which requires a crawl of the working copy. This can be a slow operation for large working copies, and the log messages are not displayed until the crawl completes. If you want to disable or limit this feature you need to set a registry key HKCU\Software\TortoiseSVN\RecursiveLogRev as described in “Nastavitve registra”.

Zmožnosti sledenja spajanja

Subversion 1.5 uvaja sledenje spajanja z uporabo lastnosti. To nam omogoča pridobiti podrobnejšo zgodovino spojenih sprememb. Primer: če na posebni veji razvijate neko novo zmožnost programa in potem spremembe spojite na glavno vejo, boste na glavni veji to novo zmožnost videli kot eno objavo, čeprav ste pri razvoju te lastnosti na posebni veji naredili tisoč objav.

Slika 4.19. Dnevnik prikazuje sledenje spajanja revizij

Dnevnik prikazuje sledenje spajanja revizij

Če želite videti, katere revizije so bile spojene kot del objave, uporabite potrditveno polje Vključi spojene revizije. Dnevniška sporočila se bodo ponovno prenesla, tokrat bodo vključeni tudi zapisi revizij, iz katerih je bilo narejeno spajanje. Spojene revizije so prikazane v sivi barvi, saj predstavljajo spremembe, narejene na drugi veji.

Spajanje seveda nikoli ni enostavno! Med razvojem na veji boste na vejo občasno spajali spremembe iz glavne veje. Torej bo zgodovina spajanja glavne veje vsebovala dodaten nivo zgodovine spajanja. Različni nivoji spajanja so v dnevniku prikazani z zamikanjem.

Spreminjanje sporočila dnevniškega zapisa in avtorja

Revision properties are completely different from the Subversion properties of each item. Revprops are descriptive items which are associated with one specific revision number in the repository, such as log message, commit date and committer name (author).

Včasih želite spremeniti vnešeno sporočilo dnevniškega zapisa - zaradi napake v črkovanju, ker boste želeli izboljšati komentar ali zaradi kakega drugega razloga. Ali pa boste želeli spremeniti avtorja objave, ker ste si nastavili napačno avtentikacijo ali pa...

Subversion lets you change revision properties any time you want. But since such changes can't be undone (those changes are not versioned) this feature is disabled by default. To make this work, you must set up a pre-revprop-change hook. Please refer to the chapter on Hook Scripts in the Subversion Book for details about how to do that. Read “Server side hook scripts” to find some further notes on implementing hooks on a Windows machine.

Once you've set up your server with the required hooks, you can change the author and log message (or any other revprop) of any revision, using the context menu from the top pane of the Log dialog. You can also edit a log message using the context menu for the middle pane.

Pozor

Lastnosti revizij v sistemu Subversion so brez različic, zato bo sprememba lastnosti (n. pr. lastnost svn:log za sporočilo objave) za vedno prepisala predhodno vrednosti te lastnosti.

Filtriranje dnevniških zapisov

Če želite omejiti izpise na le tiste, ki vas zanimajo, in se tako izogniti brskanju po seznamu, lahko uporabite možnosti filtriranja na vrhu okna. Začetni in končni datum vam omogočata omejitev vpisov na omejeno časovno območje, polje za iskanje pa vam omogoča izpis le tistih revizij, ki vsebujejo iskani niz.

Click on the search icon to select which information you want to search in, and to choose regex mode. Normally you will only need a simple text search, but if you need to more flexible search terms, you can use regular expressions. If you hover the mouse over the box, a tooltip will give hints on how to use the regex functions. You can also find online documentation and a tutorial at http://www.regular-expressions.info/. The filter works by checking whether your filter string matches the log entries, and then only those entries which match the filter string are shown.

To make the filter show all log entries that do not match the filter string, start the string with an exclamation mark ('!'). For example, a filter string !username will only show those entries which were not committed by username.

Upoštevajte, da filter deluje na sporočilih, ki so že na razpolago. Filter ne nadzira prenosa sporočil iz skladišča.

Poti lahko filtrirate s potrditvijo polja Skrij nepovezane spremenjene poti. Povezane poti so tiste, ki vsebujejo pot, ki je bila uporabljena za prikaz Dnevnika. Če pogledte dnevnik za neko mapo, potem to pomeni vsebino te mape. Pri datotekah to pomeni le izbrano datoteko. Potrditveno polje ima tri stanja: prikažete lahko vse poti, posivite nepovezane ali povsem skrijete nepovezane poti.

Včasih delo na projektu zahteva uporabo predpisane oblike sporočila dnevniškega zapisa, kar pomeni, da besedilo, ki opisuje spremembe, ni vidno pri skrajšanem povzetku, ki se prikaže v zgornjem delu okna. Lastnost tsvn:logsummary lahko uporabite, da izvlečete del besedila, ki se prikaže kot povzetek. Za več informacij o tej lastnosti reberite “Projektne lastnosti TortoiseSVN”.

No Log Formatting from Repository Browser

Because the formatting depends upon accessing subversion properties, you will only see the results when using a checked out working copy. Fetching properties remotely is a slow operation, so you will not see this feature in action from the repo browser.

Statistične informacije

Klik na gumb Statistika postreže z nekaj zanimivimi statističnimi informacijami o revizijah, prikazanih v oknu dnevnika. Prikazano je, koliko avtorjev je sodelovalo, koliko objav so naredili, napredek po tednih in še veliko več. Sedaj lahko enostavno vidite, kdo je delal največ in kdo je zabušaval;)

Statistika

Ta stran vam pokaže vse mogoče številke, predvsem časovno območje in število revizij ter nekatere ekstremne in povprečne vrednosti.

Stran objav glede na avtorja

Slika 4.20. Histogram objav glede na avtorja

Histogram objav glede na avtorja


Ta graf prikazuje, kateri avtorji so bili aktivni na projektu v obliki preprostega histograma, zloženega stolpičnega diagrama ali potičnega diagrama.

Slika 4.21. Potični graf objav glede na avtoja

Potični graf objav glede na avtoja


Kadar na projektu sodeluje nekaj glavnih avtorjev in veliko takih, ki prispevajo občasno, veliko majhnih segmentov naredi graf bolj nečitljiv. Drsnik na dnu omogoča nastaviti mejo (v obliki odstotkov). Avtorji, katerih aktivnost je manjša od meje, so združeni v skupino Ostali.

Objave po datumu

Slika 4.22. Objave po datumu

Objave po datumu


Na tej strani je grafično prikazana projektna aktivnost: število objav in avtor. To vam pove, kdaj se na projektu dela in kdo je kdaj delal.

Kadar sodeluje veliko število avtorjev, bo na grafu prikazano veliko število črt. Na voljo sta dva pogleda: normalen, kjer je avtorjeva aktivnost relativna na osnovno linijo, in zložen, kjer je avtorjeva aktivnost relativna glede na črto pod njim. Ta možnost onemogoča križanje črt, kar olajša branje grafa, vendar je pri tem težje oceniti rezultat posameznega avtorja.

Po privzetih nastavitvah je analiza občutljiva na male in velike črke, torej se uporabnika PeterEgan in PeteRegan obravnavata kot različna avtorja. Vendar pa v veliko primerih uporabniška imena niso občutljiva na male in velike črke in so zato včasih vnešena nekonsistentno. Zato v takšnih primerih želite imeni DavidMorgan in davidmorgan obravnavati kot isto osebo. Za nastavitev tega obnašanja uporabite potrditveno polje Za avtorje ni razlikovanja velikih/malih črk.

Statistika pokriva isto časovno območje kot okno dnevnika. Če le-to prikazuje le eno revizijo, potem vam statistika ne pove prav veliko.

Nepovezan način

Slika 4.23. Go Offline Dialog

Go Offline Dialog


If the server is not reachable, and you have log caching enabled you can use the log dialog and revision graph in offline mode. This uses data from the cache, which allows you to continue working although the information may not be up-to-date or even complete.

Here you have three options:

Offline for now

Complete the current operation in offline mode, but retry the repository next time log data is requested.

Permanently offline

Remain in offline mode until a repository check is specifically requested. See “Osveževanje pogleda”.

Cancel

If you don't want to continue the operation with possibly stale data, just cancel.

The Make this the default checkbox prevents this dialog from re-appearing and always picks the option you choose next. You can still change (or remove) the default after doing this from TortoiseSVNSettings.

Osveževanje pogleda

Če želite preveriti, ali obstajajo na strežniku novejši zapisi v dnevniku, lahko pogled osvežite z uporabe tipke F5. Če uporabljate predpomnilnik dnevnika (privzeta nastavitev), s tem preverite skladišče in prenesete le najnovejše zapise. Če ste pred delali v nepovezanem načinu, bo TortoiseSVN poskušal vzpostaviti povezavo.

Če uporabljate predpomnilnik dnevnika in menite, da se je sporočilo dnevniškega zapisa ali avtor spremenil, lahko za ponoven prenos prikazanih sporočil iz strežnika in posodobitev predpomnilnika uporabite Shift-F5 ali Ctrl-F5. Upoštevajte, da s tem osvežite le trenutno prikazana sporočila in ne celotnega predpomnilnika za trenutno skladišče.