I remember 2 events in SVN history: TortoiseSVN got usable and VisualSVN got usable.
The result of the first: "We will never ever want to use SVN with command line". The result of the second: "We will never ever use SVN & MSVS without VisualSVN"
please understand this correct - we do use SVN command line if we need something that can not be accomplished with Tortoise and we do use Tortoise if something we need is not available from MSVS. But otherwise (99.9% of the time) all you need is right at your hand in the IDE.
Now I do understand and like the benefits of distributed source control, but there is simply no way I'm going to hunt files renamed in the IDE and executing manually hg rename in order not to loose history ("delete + create new" instead of "rename" = no history). Nor I consider blame or file revert to be an action that can not be executed directly on file selected in solution explorer or open for editing. With VisualSVN all of that, and much more, just works!
Conceptual benefits of DSCM are great, but they are no good if simple, daily used features are not available from the IDE!
The question: is there a distributed source control with plug-in that integrates in to MSVS as smooth as VisualSVN does? Git Extensions and VisualHg are no where close to that point at the moment and VisualSVN team refuses to create VisualGit with:
P.S. A must from IDE:
- File status in solution tree. Parent i.e. folder/project/solution is marked as edited if any child is edited.
- contextual update, commit, history, blame, revert as a one click action from solution explorer/open file with keyboard shortcuts available!
- Automatic tracking and handling of file rename / drag and drop / new file creation.
- An indicator (yellow line) of what is yet not committed in edited file that does not disappear after the file is closed and reopened.
Not much is it?
UPDATE:
1) Tested HgSccPackage yesterday. It sure has more needed features available right from IDE, and they do respect current context i.e. selected/open file etc. Unfortunately it's solution tree status currently is buggy and does not support folder status.
2) Git Source Control Provider mentioned in a reply same as VisualHG lacks at least 2 things:
- for some reason they have tiny amount of contextual actions (blame/annotate for example is NA)
- it seams they both are solidly based on MSVS source control API (unlike VisualSVN) and hence do not provide solution folders status (same thing with HgSccPackage).
3) Charles Bailey pointed out, that git handles renames anyway. Yep, it does. No need for any of IDE support here (Not sure about mercurial). So git MSVS support only lacks good contextual, one click actions and proper tree status support (well there is also a yellow line, but lets say it's very nice to have, but not a must at the moment).