On 08/13/2011 04:58 PM, Stefan Bodewig wrote: > Absolutely. I'm running out of time right now, but will focus on the > three issues you've mentioned soon.
Great! Here there are the patches: https://bitbucket.org/NachbarsLumpi/log4net-patches You can review them by enabling the patchqueue extension in your mercurial configuration and then do: $ hg qclone ssh://h...@bitbucket.org/NachbarsLumpi/log4net-patches At this point you have cloned the repository containing the patch queue. This means you have the complete history of log4net: $ hg log -l 1 changeset: 553:7f145743e63e tag: tip user: rgrabowski@13f79535-47bb-0310-9956-ffa450edef68 date: Wed Oct 13 03:26:57 2010 +0000 summary: Additional fix for LOG4NET-59 to ensure correct call to System.IO.File.GetLastWriteTime or GetLastWriteTimeUtc and a hidden repository containing a versioned history of some patches. To see which patches you got, you can do a: $ hg qseries LOG4NET-190 LOG4NET-108 LOG4NET-235 LOG4NET-271 LOG4NET-270 To apply a patch onto your working revision, you just have to: $ hg qpush LOG4NET-190 Which will literally "create" a commit containing the patch information: $ hg log -l 2 changeset: 554:200e5c7be470 tag: LOG4NET-190 tag: qbase tag: qtip tag: tip user: Dominik Psenner <dpsen...@gmail.com> date: Sun Aug 14 23:28:05 2011 +0200 summary: LOG4NET-190 changeset: 553:7f145743e63e tag: qparent user: rgrabowski@13f79535-47bb-0310-9956-ffa450edef68 date: Wed Oct 13 03:26:57 2010 +0000 summary: Additional fix for LOG4NET-59 to ensure correct call to System.IO.File.GetLastWriteTime or GetLastWriteTimeUtc At this point you can take a look at the patch, test the impact and once you're done with it, you can unapply the patch by doing: $ hg qpop which brings you back: $ hg log -l 1 changeset: 553:7f145743e63e tag: tip user: rgrabowski@13f79535-47bb-0310-9956-ffa450edef68 date: Wed Oct 13 03:26:57 2010 +0000 summary: Additional fix for LOG4NET-59 to ensure correct call to System.IO.File.GetLastWriteTime or GetLastWriteTimeUtc If you wanted to modify a patch, you could push a patch with: $ hg qpush LOG4NET-190 $ "hack hack hack" Update the patch file: $ hg qrefresh And commit the changes you made to that patch file: $ hg commit --mq And finally push the changes you made to the patch repository: $ hg push --mq You can iterate over these steps as often as you want and work on a patch as long as it takes to finish it in perfection without actually modifying the project history itself. Of course one day the patch will be finished and I would like to show you the steps you would take then. First of all you apply the patch as before: $ hg qpush LOG4NET-190 Then you finish it: $ hg qfinish LOG4NET-190 Which does remove the patch from the series: $ hg qseries LOG4NET-108 LOG4NET-235 LOG4NET-271 LOG4NET-270 At this point we commit the changes made in the patch repository: $ hg commit --mq -m'finished LOG4NET-190' And push that information to the patch repository at bitbucket: $ hg push --mq What we have now in the project history is the newly added commit record of the patch we made: $ hg log -l 2 changeset: 554:200e5c7be470 tag: tip user: Dominik Psenner <dpsen...@gmail.com> date: Sun Aug 14 23:28:05 2011 +0200 summary: LOG4NET-190 changeset: 553:7f145743e63e user: rgrabowski@13f79535-47bb-0310-9956-ffa450edef68 date: Wed Oct 13 03:26:57 2010 +0000 summary: Additional fix for LOG4NET-59 to ensure correct call to System.IO.File.GetLastWriteTime or GetLastWriteTimeUtc And since the crew are surely interested in the work you've finished, you do this to push the information to the log4net-crew repository: $ hg push This is how one works with patch queues! :-) At this point I could pull the change in the crew repository by doing: $ hg pull and push that information to svn if I had write privileges. Feel free to ask questions if there are any! -- Dominik Psenner ## OpenPGP Key Signature ################################# # Key ID: B469318C # # Fingerprint: 558641995F7EC2D251354C3A49C7E3D1B469318C # ##########################################################
signature.asc
Description: OpenPGP digital signature