When I switch to a different solution, the Team Explorer looses track and gets into a state where I cant see changes or anything.
Feature request: selecting a file in the "Included Changes" list should show the diff/comparison, instead of having to right-click and select "Compare", kinda like the Solution Explorer works with single-clicks.
2 stars because I love having Git integrated into Visual Studio. However, in it's current state this extension is more trouble than it's worth.
Just opening a medium sized project with modified files causes Visual Studio to use 10%-20% of my CPU (Core i7 3970X). That itself wouldn't be that big of an issue, but the IDE becomes horribly laggy. The UI takes forever to respond to any mouse clicks, and trying to edit source code is unbearable, as there is quite a lag between hitting a key and it registering on screen.
Fix the perf issues, and this thing will be golden.
I just installed this and tested it out. I am not experiencing the performance issues yet, but I do find that its very dangerous to me that you need to actually commit your change and then push it out to your source repo. Developers could very easily miss this step and not check in their changes. Is there a way to make it happen in one action?
I've installed this plugin, though with the reviews and track history, I'm actually scared to use this product as it might just end-up messing up my files. Uninstalled it, will have to pass. Git bash works great though! a lot more flexibility and nothing "hidden" underneath the shell.
I have now seen the Q and A section.
I first entered a review about it, but probably this is more appopriate so you have a chance to answer.
When this is fixed I will update the rating and review with my positive comments on the funcionalities of the plugin.
This is our bug report:
Installing this and using it in a medium/big sized solution (270Mb with 7000 files) is a NO go.
We installed it in our 3 development machines (windows 7 64 bit) and Visual Studio became really sluggish. In the Git operations works fine: push, pull, commit etc.
The big problem is in opening a source file of our solution, saving it, or even typing to modify the file! the machine responds after quite a few seconds each time...
I have no idea what this plugin could do on those simple operations... but it makes all our 3 powerful machines crawl.
It is really unbearable and we had to disable the plugin.
We also have a small solution within the same git repository (4Mb in size 130 files) and with that there is no change in speed. So it is not influenced by the size of the Git repository, just the solution.
Did you test your plugin at all with a big size solution?
When do you think this could become usable in our case??
Is there any workaround?
We are working on some performance improvements that we hope will take care of the problem. It would give us more confidence that we have reproduced the issue if you could be more specific about the problems you are seeing.
What do you mean by 'quite a few seconds'? 5, 10, 30?
Does it take this long for each character that is typed? Just once at the beginning?
Does this reproduce only when you have a certain number of pending changes, or files open?
Are you saying that is does not reproduce with the small solution in the same repo?
I have used SourceSafe for years but have started using the TFS cloud service with GIT and have a newbie question to ask. I have several VS2012 solutions that share some of the same C# projects. If I grouped the shared projects into a single repository and the non shared into their own repository, can a single VS2012 solution then include those two or more repositories? Will TFS with GIT then work as expected allowing you to check in two separate projects in the TFS cloud service? I need everything in one solution but do not want all projects within a single root folder on the disk. Am I expecting too much here?
Unfortunately GIT doesn't support having a multi-rooted repo. Core GIT has a feature called sub-modules which will allow you to have a repo inside a repo; but VS doesn't fully support that yet, and it doesn't sound like that will solve your problem. I think TFS Version Control is your best bet for now. Like Source Safe, it is more flexible about how you can arrange your sources.
Hello, I started using git (0.8.5.1) repository with VS2012-2 on a TFS service. We are a team of 3 developers. Things worked ok when I created the repository and pushed the changes. Other team members were able to clone the project and started working. Problems started when I needed to pull changes made by another team member. I keep on getting an error message:
An error was raised by libgit2. Category = Unknown (Error).
No error message has been provided by the native library
If I try to use the command line to pull, I get an authentication failure although I for sure know I am typing the correct credentials!!
So I am completely stuck as I am unable to push my changes until I pull the incoming commits.
Any help is appreciated.
Thanks & Regards,
Darren, we weren't able to follow up with the user who reported this previously. If you can send us your visualstudio.com account name we can try to nail this down. You can email taylaf as mentioned above or me at: abrapar at microsoft dot com.
When there are merge issues that needs to be manually resolved, I click merge, kdiff opens, then i merge the content and click "accept merge" in vs after kdiff closes. When i go to my file, all content is gone.
Does this happen every time that you merge with kdiff? And, just in case it's relevant, can you tell me what version of kdiff you're using? You can email me directly if you like, abrapar (at) microsoft (dot) com.
I'm not able to checkout another branch using this plugin. I get the following
Value was either too large or too small for an Int32.
Using command line git I can change branches without trouble, and the plugin then correctly recognizes the changed branch.
Thanks for letting us know about this issue. We have heard about this from other users and we are investigating. If anyone experiencing this problem has a solid repro, please let us know. You can email taylaf at Microsoft dot com or mmitrik at Microsoft dot com.
I have this problem too, what do u mean by solid repo? I have this repo which me and a colleague only has worked on agains the master branch. Suddenly when trying to pull latest changes I get this error..
btw, its hosted on visualstudio.com
@Robert, we haven't been able to reproduce this internally is what Matt means when he says we don't have a solid "repro" for this. It would be awesome if you could give us access to your repository briefly so that we can diagnose this bug. Could you reach out to me at email@example.com so that we can coordinate?
Great news. We were able to get to the bottom of this issue and we'll have a fix available in the next release. As a workaround, if you close your solution and try the operation that is causing this issue (merge or pull) then the error should not happen.
Thanks to everyone for their help.
(First of all, I'm very excited to be using git with VS. The integration is solid enough for me to push its adoption for all my colleagues. Thanks!)
I'm getting the following error message when attempting to push commits:
"An error was raised by libgit2. Category = Unknown (Error). No error message has been provided by the native library".
My setup is a local repo on C: whose .git/config file specifies origin as a repo on J:, a mapped network drive. I'm using VS2012.2 on Windows 7, and have v0.8.5.1 of git tools.
Performing a `git push` using git-bash works as expected. Fetching and pulling in VS work fine, so it's not obviously a transport error.
I'd appreciate your advice on this as it's the one remaining fly in an ointment that is otherwise silky-smooth.
Thanks for the feedback! One question, is the repo on the J: drive a non-bare repo? If it is, I think that is the root of the problem and we just aren't reporting the error well.
If not, let me know and we can dig in further.
You're right that the repo was non-bare. Shuffling things around to produce a bare repository results in a successful push. Thanks for the solution!
For future reference, is there a source of documentation I could refer to in future for this VS extension? Any search I employed trying to get to the root of this issue led me back to this page.
We're working on MSDN content for these tools right now but those will focus specifically on the version that will come in the box with VS 2013. For bug reports and troubleshooting, this site and the connect.microsoft.com site are probably the best. If you are looking for other content like how-to guides, you can also watch this blog feed: http://social.msdn.microsoft.com/Search/en-US?query=git&beta=0&rn=Visual+Studio+ALM+%2b+Team+Foundation+Server+Blog&rq=site:blogs.msdn.com/b/visualstudioalm/&ac=4
Never mind I figured it out. I had tortoisegit configured to use a custom diff/merge but not my global .gitconfig itself. For anybody else who might want instructions see http://stackoverflow.com/a/17000474/55948
Using a test repository on tfs.visualstudio.com:
1. Branch from master to feature-test-3
2. Make a change in feature-test-3
3. Commit the change
4. Publish the branch
5. Switch to master
6. Try to merge feature-test-3 into master
"Merge cannot start because there are uncommitted changes."
Google'ing for that exact phrase returns nothing.
"git status" shows I'm on master and there are no changes.
If I run "git merge feature-test-3" from the command line it works fine, and you can continue working with the UI from there.
After reading some things in the Q&A, it seems that there's a bug where some git operations pick up different .gitconfig/.gitignore files than other operations. I have used Git previously on this machine, the UI in VS and the command line seem to be in sync at least as far as changes go (git status => nothing, UI => no uncommitted changes)
There are currently some issues in how the state of the index is cleaned up when switching branches using our tools. If you try to switch branches from the command line (i.e. from master, to feature, then back to master), are you then able to merge from the UI?
We've fixed a few bugs in the checkout logic since the 0.8.0.0 release so the next update should improve this experience.
Just as I went to test this, switching between branches in the UI broke with:
An error was raised by libgit2. Category = Checkout (MergeConflict).
1 conflicts prevent checkout
git checkout feature-test-3 works fine
git checkout master (i.e. "back again") works fine
It sounds related to what you're talking about (the checkout logic) so I'll sit back and wait for the next version.
Thanks for following up.
Got same issue on latest version, turns out there where uncommited changes in a folder that was not in solution, on a different branch. These changes did not show up on changes list in the branch i was on. Using git extensions to to change branch, commit files, change back fixed the issue, would be good not to have to go through GIT extensions to fix this though.
Visual Studio's current Code Review feature works only from within Visual Studio: https://tfs.visualstudio.com/en-us/learn/code/get-your-code-reviewed-vs
When using TFService with Git, we need something similar to Pull Requests, as a means for performing code reviews, as github.com and bitbucket.org offer:
Has this been discussed by the team?
I submitted the idea here: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3891599-tfservice-git-pull-requests
Thanks for the feedback! Pull requests and other code review workflows are high on our backlog. Once those features go live, they'll be highlighted on TFService announcements page. Please keep the suggestions coming.
I have a very large repository. When the Visual Studio Git plugin uses file watchers to monitor changes, it throttles the hard disk at 7MB/sec (observed in Process Explorer). When it's doing this, it's locking up the IDE when trying to edit files (even when not performing Git operations).
Git Extensions can resolve the current status of the working directory in about a second. Is there a way we can get an option in Visual Studio Tools for Git so that it periodically (every 10 seconds or after an operation is done) runs 'git status' to work out the new state of the directory, rather than using file watchers?
I've also noticed via Process Explorer that the plugin seems to constantly delete and recreate Git pack files in <repo>\.git\objects\pack\. My guess is that this is the source of the plugin thrashing the disk and causing IDE slowdowns.
James, thanks for the feedback. We've identified a few issues that are causing performance in VS to be sub-par with large solutions and we are actively working on fixing those now. Please look for those improvements in one of our upcoming releases. We'll certainly highlight the performance changes when we publish it. We'd love to hear if you see improvements once those changes come out.