Mercurial Plugin for Dolphin: Work Progress [Part 1]

Its been over a month since coding period started and I haven’t blogged much about my work. To know what my project was about refer to my last blog here.

Currently following features have been implemented and are working pretty good mostly:

  • Recognize file status
  • Add/Remove/Rename files in repository
  • Commit changes
  • Create/Close/Switch branches
  • Create/Delete tags
  • Update working directory to a particular branch/tag/changeset
  • Create new repository
  • Clone repository
  • Push changes
  • Pull changes
  • KVersionControlPlugin2 interface

The user interacts with plugin through a Context Menu. Context Menu will show the actions related to Version Control such as Add Files, Remove Files, Push, Pull, Commit etc. To create/clone a repository the actions are supposed to be shown on unversioned folders as well. Current plugin interface didn’t allow this. Hence a new interface was created to solve this problem. Right now this new interface just provide facility to show context menus everywhere apart from the features provided by existing interface.

Screenshots First!

Well, there’s nothing much to say about the plugin itself. I’m posting few screenshot’s and give little descriptions.

1. Recognize File Status

The file version status are recognized by the plugin and is represented by an a small icon or tint color.

2. Context Menu

Here’s how the context menu look basically. Actions like Add, Remove, Rename show up when items are selected are enabled when they can work. Like “Add” action will be disabled for files that are already added to repository.

3. Commit Changes

Perhaps the most frequently used command is “commit”. Out commit dialog will show the files which are added, removed, renamed or modified and their respective diffs. Under Branch button, you will have three options – Use Current Branch, Create New Branch, Close Current Branch. Copy Message and Options are not yet implemented.

4. Branch

A editable Combo Box is presented which lists all the available branch. You can update current directory to a particular branch or create a new branch. The Push Buttons will be enabled/disabled according the input. Eg. In above screen shot a branch named “2.6″ exists so, “Create New Branch” is disabled.

5. Tag

This dialog works very similar to the Branch dialog mentioned above.

6. Update

The Update dialog shows two combo boxes. First one gives you options – “Branch”, “Tag”, “Changeset”. When selected first two, second combo box will list branch/tag as per the selected option. If third option is selected , second combo box becomes editable and you can update to any revision.

7. Create Repository

Simply creates a repository in given folder.

8. Clone Repository

Clones a repository at given “Source” to “Destination. Few common options are provided. Facility to handle username/password will be implemented soon after configuration dialog’s.

9. Push Changes

Push Dialog shows up as simple small dialog. Some options are available as usual. You can also see outgoing changes and their corresponding diffs and information.

10. Pull Changes

Very similar to Push Dialog. You can see incoming changes if you wish to.

11. Configuration Dialog

Just a basic configuration dialog. Its just a starting. Will have much more.

Whats next?

Most commonly used features are implemented and are working pretty good. There are still some bugs and peculiarities. They are under high priority to be fixed. Apart from that following features are planned to be implemented very soon:-

  • A nice Configuration Editor, which will edit your global, local and any other hgrc configuration file.
  • Handle repository paths/username/passwords
  • Revert/Rollback/Backout
  • Convert Repositories
  • Import and Export commit patches
  • Email commit patches
  • Edit hgignore
  • Start local HTTP repository browser using hg serve

How to get it?

Source Code of the plugin is available at KDE SVN repository at:

/branches/work/soc-kdesdk-dolphin-plugins-hg/

To compile and use the plugin you need modified kde-baseapps. it is available at KDE git repository at :

kde:clones/kde-baseapps/visheshyadav/soc-dolphin-vcs-plugin.git

In kde-baseapps, changes are made only to Dolphin and libkonq.

Your feedback!

Your feedback is most important. So please let me know if you find the plugin good/bad or you find some bug or have some idea or just anything. I would very much appreciate that. :-)

This entry was posted in Planet KDE, Uncategorized and tagged , , , . Bookmark the permalink.

13 Responses to Mercurial Plugin for Dolphin: Work Progress [Part 1]

  1. Peter Penz says:

    Very nice, thanks a lot for this! If you have any feedback to the KVersionControlPlugin that should be improved for a 2.0 version, please just let me know…

  2. Sean Tilley says:

    Oh my god! This kind of integration is exactly why I love Dolphin so much! God, I hope there’s something like this for Git and Bazaar as well. It makes handling projects that much easier. Kudos!

    • Sebastian Dörner says:

      A git plugin already exists in KDE 4.6′s kdesdk. There is no Bazaar plugin yet, but should be possible to write with the new interface (although I’m not a Bzr expert). Feel free to step up and write it ;)

  3. Michael says:

    This is excellent news! Me personally, I’ll wait until this shows up in a nice Debian/Kubuntu package repository before I use it, but this makes me very excited to see this kind of excellent work.

  4. Grammar Nazi says:

    “Screenshot’s First!”

    The apostrophe should not be used here; the word is simply plural.

    Nice work, btw. :)

  5. Laur Mõtus says:

    Will this be translatable as well?

    • Laur Mõtus says:

      OK, should have checked the source earlier, it seems it is translatable :)

      Could You make a little announcement if You find that the UI strings will be in mostly ready state to draw some attention from translators ? ;)

      • Vishesh says:

        Yeah sure. KDE has every application translatable.

        I should at first take a look back to i18n strings, and add little more information before someone translate it. You will find translations soon for sure. :-)

  6. Luca says:

    Vishesh,

    I’m very impressed with what you’ve accomplished so far, and I’d love to try it.

    However, I can’t really see myself toying around on my system for a day, getting modified versions of central KDE components to run :( Especially since I actually need it to work, so I would be ill advised to modify my system so rashly – it’s just too scary.

    I know I’m asking a lot, but if you would be able to create a package (perhaps a tarball, or whatever else – I don’t know if that’s even possible) that I could just copy over and try out (and most importantly, reverse in five minutes if something goes wrong), I would be glad to actually use it in my day-to-day work and help you improve it.

    Or is it actually less scary than I think?

    Again, thanks a lot for doing this.

    Luca

    • Vishesh says:

      Its good to know that you are interested to use and give feedbacks. Compiling it isn’t tough. However, we have made some major changes which will require compiling more than just the plug-in.

      I cant create package for you as odds are high that we might be using different Linux distributions.

      The plug-in will be part of KDE 4.8. However if you cant wait until then, compiling is your best option. And don’t worry, its safer than using package.

  7. Pingback: Mercurial Plug-in for Dolphin: Work Progress [Part 2] | Vishesh Yadav's Blog

  8. “Mercurial Plugin for Dolphin: Work Progress [Part 1] | /home/vy/log” was in fact genuinely pleasurable and useful!
    Within modern universe honestly, that is tough to do.
    Thanks, Lily

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>