It's ok, but nested .gitignore files are not properly considered (or overriding properly). The Git GUI shell extension for Windows works perfectly fine with my .gitignore files, but nested ones are not handled properly by this VS extension, and files that should be hidden using wildcards are still showing. For example, in one .gitignore file (in a parent folder) I have: /Source/*/*.js /Source/*/*.min.js /Source/*/*.js /Source/*/*.map **/DSJS/*.js **/DSJS/*.map **/DSJS/*.min.* **/DSJS/*.txt And in another .gitignore in a the sub-folder (/Source/DSJS/) I have: /*.js /*.map /*.min.* And all these files types still show.
This is really helpful for working with Git in Visual Studio.
I would like to be able to use an external diff / merge tool (Beyond Compare). I got really used to that when using TFS. Unlike command line git, this extension seems to ignore the diff.tool and merge.tool settings in .gitconfig.
I would like to request that you either use those settings or add an option in the Tools/Options/Source Control/Configure User Tools menu a la TFS?
Visual diff and history in VS is great, and some of the branch management is good.
The features that are missing, like tag and blame, I don't use as often, so reverting to command line or 3rd party tool isn't a big deal.
However, there's a deal-breaker, which is the behavior with ignored files: the ms-persist.xml file. Some tools (SlowCheetah among others) add ms-persist files within the .git folder, and then Visual Studio uses those as overrides to the .gitignore settings. So, a file that is ignored (explicitly by me in .gitignore) is included when/if some random ms-persist file exists. Of course, the git command line tool and other 3rd party tools don't use or honor the ms-persist settings, so committing from them is right.
It works OK with VS2013... but in VS2012... I get an error message (on the Team Explorer top-righ view corner "object reference not set to an instance of an object" with a red triangle... This is quite bad, because a lot of team members don't have VS2013 (which has no issues).
Prereq checks are broken. Stuck on wanting 2012 Update 2, but that is rolled up into Update 4. Which is already installed. So the install is totally blocked. Updates and patches are going downhill.. more and more broken/blocked/breaking-things. Need to prove these things to yourselves on a broader level.
Not a patch on using git in the command line. We've had plenty of issues around using this plugin and there are still some bugs and missing essential features. I'll outline some of them that most effect me.
* No stashing * No way to fetch and track new remote branches. Has to be done in CLI to show up as a branch in VS. * Seems to ignore update-index --assume-unchanged (needed for contributor-specific files.
We have also in the past had issues where it would remove entire projects from the index, sending the team into a panic. Luckily, this isn't impossible to fix with the git command line.
Some of my teammates like the VS integration, which itself is alright, but it needs to be a lot better if I'm going to trust it enough to leave the command line.
Much needed tool. However, currently it is too slow and buggy to be helpful without extra tools like TortoiseGit or the command line. Disappointing since this would really add a lot of value to Visual Studio.
For example: Try getting the History of a file. It can take minutes.
In my solution I have a submodule (Bootstrap) that introduces long paths (>256 characters) to my project. Because of this, I cannot commit through Team Explorer:
"An error occurred. Detailed message: An error was raised by libgit2. Category = Os (Error).
Failed to open directory '<path to my web project root>/Assets/bootstrapcustomization/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/node_modules/npmconf/node_modules/ini/test/fixtures/': The system cannot find the path specified."
Ignoring the long paths won't help either. Thus, I am forced to make all my commits through CLI tools.
Qpok, This is a Windows OS issue with long path names. VS builds on OS resources and is limited my the OS it self. You'll actually find that if you try to delete files with long path names, the Recycle Bin has issues too. Thanks Microsoft (aka Micro$Path).
An error was raised by libgit2. Category = 21 (MergeConflict).
4 uncommitted changes would be overwritten by merge.
The error always occur on nearly every project. Everytime I need to remove the whole repository and clone again to solve the problem.
I even can't revert the changes made in local commit and can't push the changes to the server because only 1 incoming commit stuck.
I have tried to click fetch, pull, and sync, no one make it works.
Could anyone help to solve the problem?
Really appreciate for anyone could help!
Calvin, thanks for reporting this. I'm guessing you see this error when you actually try to perform a merge? If you've seen this happen to multiple clones of your repo then I am guessing there is something special about your repo that libgit2 doesn't like. Can you send me an email at taylaf at microsoft dot com so that we can work on getting a repro in house?
I also have this problem. It happens EVERY TIME both I and someone else on the team have committed to the master branch. No, I do not do anything, especially not merge (how do I do merge? there's no option for this). I simply click the SYNC button (or Fetch or Pull - these do the same), and I get the error. So far, the only way to get rid of the error is to download a fresh copy of the repository, thereby losing ALL my changes. This is a SHOWSTOPPER.
Also the same here! If you have local unsynced commits or changes then you can't sync. (An error was raised by libgit2. Category = 21 (MergeConflict).
4 uncommitted changes would be overwritten by merge.) If you try to push your changes before pulling there is also a error message. (If it occurs next time i will add the push error message)
Tis is really an showstopper and we can't start with productive work on our new TFS before this is solved! A real Merge dialog would be nice but a good automatic merge, without destroying the local changes, would be enough for now!
I've just hit this issue as well. We have a brand new tfs-git repo and I've Cloned and done a bunch of commits and syncs. Someone else just cloned and added new files in a completely different folder, so there's no content level differences which can be diff/merged and no button for it. Surely I don't need to create a new branch every time someone else pushes a change? I wouldn't think that would make a difference anyway.
Anyway, this seems to be a massive problem, so any response would be great. has been over a month since the last post here.
The GUI seems to be buggy.
If I click Pull on Incoming Commits, I get the error referenced above "libgit2. Category = 21 (MergeConflict)...".
When I open the Git Command Window, then type "Git Pull" it resolves the simple merge and completes. Why are these different?
Same thing is happening here, almost every time I try to pull (from team foundation service) in VS it fails with An error was raised by libgit2. Category = 21 (MergeConflict)..
Pulling from command line works fine.
Same thing here, we can no longer push, pull, or sync...I assume Microsoft would be working on this serious issue or at least get some information out to us so that we can work on a resolution ourselves. This issue literally makes it impossible to use GIT in VS2013.
The same thing happened to us. We believe it was from a series of .gitignore updates by a couple of developers. When the conflict came up, there wasn't a way to merge it so they were stuck. Visual studio doesn't seem to see those files from that point of view. I'm sure there's a way to do it from the command line but since there were minimal other updates, we just re-cloned the repo
Prior to installing Visual Studio 2012 Updates 3 and 4, I had no problems adding an existing application to Git or creating a new Git repository when creating a new solution. Now, I can do neither. The following messages are display in the Output window.
An error was raised by libgit2. Category = Unknown (Error).
No error message has been provided by the native library
Tried removing the Visual Studio Tools for Git and re-installing them, but this did not work. The only project in the solution is an unmodified MVC 4 Internet application that I selected from the templates. Any ideas what might be the cause? Thank you.
I'm using GitFlow as the Workflow for my team.
I use SourceTree to create master/develop/feature/hotfix and release branches.
I limited pushes to master and develop for only Admin users (in BitBucket) but regular developers with "write" permissions should be able to commit, push or pull from visual studio to feature or hotfix branches, however, they cannot make this from the Team Explorer.
Is there any workaround to get this fixed?
I'm not experinced with git so I have a problem. I create a repository (private one) on github. I downlouded vs tools for git. Then, I createtd a project on my laptop. I add it to source control (git). I made my first commit to local repo (branch master) and then i decided to push this branch to github repository. The first problem was that I was unable to publish branch named "master" because the same branch exists on remote repo (I was surpised). I create a new branch with different name and published it. But I was unhappy with two branches (I needed only one). But real problem appeared then. My roommate decided to work on the same project. First, he cloned repository. But only one file - readmy from remote branch master copied!. After that, he created a project of the same type and published new branch to same remote repo (third one!). Unfortunately, we was unable to pull remote my branch because we cant find it in command explorer. I suspect my qustion to be stupid but I'm thery confused with it. Sorry for my English, it is not my native language.
I have this setup so that I was able to clone a repository which I have on a mapped network drive. I got it to work by using the Clone feature under Local Git Repositories. I entered this as the URL of the Git repo:
It successfully got the project down from the server only my machine. I am able to commit locally, but whenever I try to Sync back to the server I get this error:
An error occurred. Detailed message: An error was raised by libgit2. Category = Os (NotFound).
Failed to resolve path 'file:///V:\GitRepository\ProjectName': The filename, directory name, or volume label syntax is incorrect.
I tried variations on the path, but still got an error. Help would be greatly appreciated.
I should also mention that if I go to the command line prompt and run this:
git push --all
Then that command works properly and I'm able to pull the changes made onto another machine. I'm able to the pull on the other machine by using the command line as well.
I got the process working to sync with a repository on a network drive. Here are the steps involved:
To create a Git repository on the server and tie it to your local repository:
1. In the network repository directory create a folder named for the project being added.
2. Click on Actions and select "Open Command Prompt"
3. Change the current folder in the command window to the folder you created.
4. Run this command: git init --bare
5. Enter "exit" to close the command prompt.
6. Back In the Team Explorer window in Visual Studio, click on the Home button in the toolbar there and then on "Unsynced Commits"
7. Enter the path to the folder you created in the "Enter the URL of an empty Git repo" textbox and click on Publish
8. Click on the Home button in the tool bar in that window. Then click on Branches.
9. Right click on the item under Unpublished Branches and select Publish Branch.
To get a project that is currently in the Git repository on the server onto your machine:
1. First make sure that your settings are set correctly in the Team Explorer by clicking on the Settings link in the Home screen in the Team Explorer window.
2. Go to the Team Explorer window in Visual Studio and click on the Connect to Team Project button in the toolbar.
3. Click on Clone, and enter the path to the network folder containing the project you want and click on the Clone button.
How did you solve the "Failed to resolve path" failure when syncing? I've essentially landed in the same place you describe on 20MAR. Running through the steps on your 25MAR post gives me the same results too. My results:
An error occurred. Detailed message: An error was raised by libgit2. Category = Os (NotFound).
Failed to resolve path 'file:///C:/path/to/repos': The filename, directory name, or volume label syntax is incorrect.