Coding period: week #9

Published: 07/27/2019

This is a blog post about trying to clean up the code that I have written for a feature that had merged and marked as experimental.


What did I do this week?

For the past few weeks, I have been working on an interesting feature called `unshelve --continue`. My mentor was actively giving reviews on the old patch even after getting that merged. So, I had to send a follow-up stack following the merged patch. I started with a patch[1] to modify the help text on verbose mode to say the user why this feature is still experimental and it's problems. Then, I sent a new stack:

[2]: D6679 unshelve: store information about interactive mode in shelvedstate

[3]: D6687 unshelve: create a matcher only if required on creating unshelve ctx

[4]: D6694 unshelve: fix bug on a partial unshelve with --continue

[5]: D6697 cmdutil: add allowunfinished to prevent checkunfinished() on docommit()

[6]: D6685 unshelve: changes how date is set on interactive mode

[7]: D6686 unshelve: handle stripping changesets on interactive mode

[8]: D6683 unshelve: unify logic around creating an unshelve changeset

[9]: D6699 tests: add test for unshelve --interactive --keep


What is coming up next?

Since I have been working on `unshelve --interactive` for a long time, my priority should be this only. I will try to clean the code and modify the tests to account for all cases possible. If that is getting over on time, I will work on an interesting issue[10].


Did you get stuck anywhere?

As usual, I got problems in rebasing and evolving changesets, I had to make the DAG linear after every time after resolving enormous conflicts. But, I got used to it and it wasn't much a problem per se.