[[!meta title="Mudra Martin"]] **Název projektu:** AnkhSVN **Domovská stránka projektu:** Zadání ====== AnkhSVN je integrace SVN do visual studia. Jeji jedina konkurence je komercni a placeny visualSVN plugin. Bohuzel tortoise neni prilis stabilni a proto bych chtel celkove zvysit stabilitu tohoto doplnku tak, aby nebyli vyvojari nuceni platit za visualSVN. Ankh svn ma mnoho otevrenych issues tykajicich se stability a také má mnoho issues, které nejsou nahlášeny. Odkaz na issue Tracker: http://ankhsvn.open.collab.net/issues Založil jsem stability issue, který jsem našel (#708). Jedná se například o velice častou situaci, kdy je přidán nějaký soubor do verzovacího systému, ale změna ještě není commitnutá. Server tedy ví o souboru, že již existuje ale ještě nezná jeho obsah. V tuto chvíli když na tomto souboru někdo zavolá nějakou serverovou operaci AnkhSVN vyhodí vyjímku, která je ošetřena až nějakým global mechanismem a následně se OBČAS chová nějak podivně (nefungující tlačítka atd.). Tato situace nastává ve chvílích, kdy například zavoláme diff nad celou solution, nebo v případě mylného výběru tohoto souboru při výběru více položek. AnkhSVN používá pro komunikaci s SVN knihovnu SharpSVN, která není součástí tohoto open source projektu. Tato chyba nastává už v této používané knihovně, je však možné tuto chybu ošetřit i na straně Ankh, kdy se zkontroluje před zavoláním těchto serverových operací, zda se nejedná o soubor, který byl přidán ale necommitnut. Další řešenou issue je issue číslo #707, které se týká nemožnosti psát zprávu přes dialogové okno. Tato issue se vyskytuje velice nepravidelně. Tato chyba se vyskytla a já jsem se jí pokusil nějak opravit. Bohužel řešení této chyby neuznali, protože celý dialogový systém se aktuálně předělává kvůli VS 2011. Pro opravení této chyby stačilo vždy při konstruování tohoto okna zavolat focus do okna se zprávou. Přesný důvod této chyby se mi však nepodařilo vypátrat. Tato chyba se v issues vyskytovala velice často a #707 je posledním výskytem této chyby. Issues jsou založeny na adrese: http://ankhsvn.open.collab.net/issues/show_bug.cgi?id=708 http://ankhsvn.open.collab.net/issues/show_bug.cgi?id=707 Celou opravu jsem poslal podle pravidel popsaných na adrese: http://ankhsvn.open.collab.net/servlets/ProjectProcess?documentContainer=c5__How%20to%20submit%20a%20patch Odkazy dokládající výsledky mé práce ====== ----- Odkazy na mou komunikaci s vývojáři v on-line archivech veřejných diskuzí ======= mudrama1@fel.cvut.cz 12.4. komu: dev [[[ Fix issue #708/707: Dont crash when try to perform uniffiedDiff, Annotation and Lock operations on added and uncommited ]]] Best regards Martin Mudra PatchForUncommitedFilesDiffAnotationLockOperations.patch 9 kB Stáhnout 13.4. Bert Huijben bert@qqmail.nl Hi Martin, I committed slightly tweaked portions of your patch in r11156, r11157 and r11158. Somehow your patch was broken by the mailing list software. (There are blank lines between all the useful lines). Annotate: I used an SvnItem.HasCopyableHistory check instead of added, to allow the command to keep working on copied files. (The root of a copy is also .IsAdded) I applied the check in the update and execute handler to just disable the command where it doesn't work instead of showing an error dialog. (Another bug fixed was that it checked for .IsVersionable when fetching a targets list) I also fixed a TODO: Save the file if annotating against the working revision. Unified Diff: Unified diff does work on added files, but it didn't work on files that had the change status 'New'. I fixed this by applying the 'New' status directly here. To avoid further errors I disabled the exceptions from the diff handler and write the error to the patch file instead. Lock: Same as annotate: I applied the fix to the selection filter instead of to the dialog processing to avoid showing UI that doesn't work instead of showing errors. (Also: fixed a missing resource reference) Thanks for your patch!, Bert ---- [Odkaz na repozitář](http://ankhsvn.open.collab.net/svn/ankhsvn/trunk) ======= --- Odkazy na mé commity v repozitáři projektu ======== použitá subversion nepodporuje přímé odkazy na revize. Commitnuté revize jsou: **r11158:** Disable the lock command on new, replaced and copied files. **r11157:** Add status 'New' files from the unified diff handler to allow showing them in the diff result. Instead of failing on errors add a comment line to the diff that shows what error occured. **r11156:** Don't try to annotate new files and save documents before annotating to the working revision. * [Další relevantní odkazy dokládající mou práci...](http://lwn.net/Articles/385586/) Dokumentace ======== Jedná se o stability issues programu, dokumentace oprav je přítomná v issuetrackeru a samotné opravy v kódu. Ukázky: 1 ...added)//For this command server must know object, when it is not commited it doesnt make sense to use this... 2 ... /// /// Looks up a localized string similar to Item '{0}' is not commited. Perform commit operation on this file first.. /// internal static string TargetNotAdded { get {return ResourceManager.GetString("TargetNotAdded", resourceCulture);}} ... Prezentace ========== * [[Prezentace záměru práce|AnkhSVN.pdf]] * [[Prezentace řešení|AnkhSVNSolution.pdf]] Ohloh ===== Ohloh profile for LightCZ 125125