ChatGPT解决这个技术问题 Extra ChatGPT

Visual Studio isn't tracking changes, or checking out files from source control as I edit them

I am new to TFS. At my job I mapped the TFS projects to local directories, performed a get, and everything works as I expected. When I edit files on my local copy, source control automatically checks them out for editing and tracks the files with pending changes via the pending changes window. Then I just check them in throughout the day using that window.

However, at home this doesn't appear to be happening. I have access to source control and using source control explorer, have mapped the projects to local directories. This appeared to work fine. However, when I open the projects and open files, changes I make are not automatically checking out files. In fact, visual studio isn't even changing their read-only status until I try to save my changes; at that point it warns me that the file is read-only and asks if I would like it to try to overwrite the permissions and save. I do and it works fine. But again, no changes register in the pending changes window. I'm kind of lost. The only source control experience I really have is subversion and the visual studio AnkhSVN plugin.

I've even opened my solution by double-clicking the solution file that is in source control explorer. You would think it would be fully-aware that the solution I'm opening should be tracked by source control.

Edit

Since people seem to be questioning my use of the phrase "at home", let me clarify. There are no problems with the network. I am on a VPN. I can browse source control just fine. I have since reinstalled everything for various reasons. All went well. I'm just having an issue with Visual Studio not tracking changes to files and allowing them to be committed back to source control. So to sum it up:

How could Visual Studio stop tracking changes after being mapped correctly, and allowing me to get latest? I can update from source control, I just can't commit. Pending changes window is empty even after making changes.

what do you mean by "However, at home this doesn't appear to be happening"? Are you accessing TFS remotely?
I am on a VPN to my work network. I have no problems accessing the network and TFS. I can browse source control. My problem is that VS isn't tracking changes and allowing me to commit them back to source control. Also, if it helps ease your mind about the VPN, this used to work at home just fine. I have reinstalled my OS, and now it's being goofy.
My question is about visual studio and source control. I have been very clear in this. Forget about the VPN, or that I installed my OS. Is there any way that source control can stop tracking changes? Maybe a setting I'm overlooking.
Not sure why I deserve -1. I have been very clear and specific. Just because you don't know the answer doesn't mean it's a bad question.
You really did do a great job of explaining the problem. You also did a great job of adding the answer here.Man, this saved me some time. TFS is a pile.

A
Alex Janzik

Right-click on your solution node and go down to "Go online". For various reasons visual studio can mark your solution as tracked by source control, but "offline". It is still tracking changes behind the scenes waiting for you to go online again. After doing this my pending changes window populated and all is normal. I figured it was a simple setting somewhere.


I see the same symptoms but do not see the "Go Online" option. Any thoughts?
If you are seeing this issue but can't find the "Go online" option, try opening any code file in the project, then go to "File -> Source Control -> Go Online". This option does not show up in the File menu while you the Source Control tab has focus.
I had just written of my struggles, where TFS wasn't seeing changes made when I wasn't connected to it in VS. This answer showed up on the Related sidebar in SO -- thanks for answering my not-asked question! -- J. Merrill
Not relevant in your case, but for others: if you find that your solution is "online" and it's still not automatically checking files out when you edit them, you can check your settings under Tools->Options->Source Control->Environment, and verify that "Saving" and "Editing" are both set to "Check out automatically" and that "Allow checked-in items to be edited" is unchecked. -- Additionally, if you're using VS2012 or newer, verify that it is indeed a server workspace and not a local workspace; as the new "local workspaces" feature works a bit differently.
Thanks for bringing the answer back to SO. I LOVE these hidden little features. Seems like there should be a more apparent indicator somewhere in the UI to let you know you're "Offline" even though I JUST got latest from SCE... :^|
C
Carl Walsh

I found an interesting setting under File > Source Control > Advanced > Change Source Control.

If I bind the solution and project to my source control server (unbind first if it's already bound), then suddenly it works! Saving a file automatically checks out the file and tracks changes.

Edit: this seems like a bug in Visual Studio. If this workaround helps you, it would be awesome if you create a new issue at https://developercommunity.visualstudio.com with your Visual Studio version info, so that the dev team can fix this!


Thank you - this was my issue as well. My solution was bound but for some reason my 4 project children were not bound - clicking the bind button for the 4 project gave me back the missing functionality
Yes this did work for me too. But it is a tedious tasks, I have 400 odd projects i have to unbind them each one of them (cannot do multiples at the same time) and bind each one of them.
@Abe @ Paul if the issue is frustrating the way to get it fixed is to send feedback to MSFT through the website or from inside VS :) (I can't repro it; I don't work with TFS anymore.) If you do, paste the link here so we can upvote it!
this one still works as of today! solved my issue as well.
Solved my issue as well. Thanks!
A
Abhishek Kargawal

Go into source control bindings (File->Source Control->Change Source Control) - you may notice only the project is bound - not the solution. Select the solution, click Bind.


Thank you, in my case I have to add the solution to the source control (File -> source control -> add solution to source control)
C
Chev

I've just found how to fix this when you are already online (there is no "Go online" option visible). Actually, there ARE pending changes listed but they are hidden below the huge "Comment" section. To view them increase hight of the "Pending Changes" tab and decrease hight of the "Comment" section: you'll see the list of pending changes that was hidden by poorly scaled VS :)


c
cahit beyaz

in my case i solved issue by applying steps below:

Right click your solution file on the solution explorer. click add solution to source control if you already added your files to tfs click ignore for file replacements popups


T
Trevor

I was getting the "Read Only" error like everybody else. I got the little red check next to the files I was editing, but when I went to save, it asked me to save the file b/c it was read-only. I moved the files from a different version control system and they were still read-only. But I don't think Git cares about keeping files read-only like my old source control did. So I just removed the read-only flags in Windows Explorer and was good to go.


b
bgolev

For me the solution was to go to Team Explorer Pending Changes window, and from there initiate the check-in. Did not see the go online option, i am on VS2013. Thanks to all for the pointers!


n
namford

I found one of my projects actually wasn't added to the source control at all - somehow that had been missed and so any changes to that project would not get checked out. I right-clicked on the solution node, clicked "add to source control" it warned me that some projects were already being tracked and I elected to ignore those projects and it proceeded to add the missing project(s) to source control. Now the check-out works perfectly. Sharing in case it helps anyone else!


s
susieloo_

None of the answers/suggestions on this post helped me, but I've found a solution to the problem after hours of hair pulling.

Locate your .git folder for your repository. Delete the index.lock file inside. Restart Visual Studio.

(I am using Visual Studio 2017.)


D
Dharman

Close the solution . open the solution file in notepad Then remove the below section.

GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 2
        SccEnterpriseProvider = {3CF58AB4-18FA-4F8D-95D4-32DDF27D189R}
        SccTeamFoundationServer = https://serverIP/Project
        SccLocalPath0 = .
        SccProjectUniqueName1 = Ecample\\Example.csproj
        SccProjectName1 = Example
        SccLocalPath1 = Example
EndGlobalSection

then open the solution once again it should prompt to bind, do the binding properly.


I
Ilya Gurenko

Install 2 things:

Team Explorer for VS2013 (http://www.microsoft.com/en-us/download/details.aspx?id=40776) Install VS TFS Power tools (https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f)

That's it