First, let’s just talk about my last week contributions:
I sent a patch for adding –no-commit mode in graft command ( graft is to copy changes from other branches) in the end of Feb but it was blocked because of some work going on to change the statefile format (statefiles are for storing the current state of a running command when we hit a conflict, so that we can continue from the same state after conflict is resolved) and before one week that work is completed. (Actually for this change a thirdparty library cbor2 is used which makes it easy to store the data as a “key:value” format. It serialize the data as a bytestring and deserialize as a dictionary object using methods “dumps/loads”. Before cbor2 we are just simply writing the state directly to the statefiles and was not using any encoding/decoding of the data.
So now, as new format for statefiles is added, I updated my patch which is now using the new format.
And coming to my “mercurial phases” work, it is almost completed. Last week I had a meeting with my mentor Pulkit and he suggested me not to put so much efforts on “phases” so we decided, instead of showing the range of changesets whose phase are changed or could be changed, we will simply return a list of those changesets.
These are the patches which add –dry-run functionality to mercurial phase command:
After that coming to my next task, Pulkit suggested me to work on “–dry-run for rebase”. He told me that in rebase we have an optional mode called “in-memory” where we are using IMM (in-memory merge) concept, in this mode we don’t actually update the working directory and write changes in-memory and apply them in last if everything is fine. IMM has some benefits like it save checkout time as we don’t have to update the working directory and we are able to check if two csets will conflict or not. So he said ” we can use this concept in –dry-run for rebase”
Before this meeting I was thinking to work on adding –dry-run for pull and push but we have something similar for this, called incoming and outgoing. Hmmmm, and most probably my next post would be about the working of IMM and how I’m gonna complete my next task : “Add –dry-run functionality in rebase”