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.