I'm using Visual Studio 2017 v13.3.0 (source control is disabled) and SourceTree v2.7.3. Twice now, I've made changes, committed them, pushed them -- and then lost the changes in the process. NOTE: A fetch does not fix this after it happens. Nor does it happen all the time, only twice so far since the SourceTree update to 2.7.3.
The behavior is this:
- In Visual Studio, make changes to the source.
- Note that SourceTree indicates changes to the source.
- Commit and push.
- Go back to Visual Studio, and it complains about external changes to the source and wants to reload the solution. NOTE: This has not previously been the case and it doesn't happen when everything "goes well".
- After reloading the solution, all the changes are gone and the source is back to where it was before the commit. However, SourceTree registers nothing different about the source; no indication of changes. So, even though the code was changed, committed, and pushed, and now it is back to what it was, SourceTree doesn't recognize the change.
- In Visual Studio, make the changes to the source again.
- Note that SourceTree indicates changes to the source. In fact, you can see it recognizes the exact same changes as before.
I'm not sure which is doing what here but I would expect SourceTree to recognize there have been changes if Visual Studio reloads the solution and everything is back to what it was.
NOTE: Since someone may ask, "Why use SourceTree when you have source control in Visual Studio?", it is because I work in many different tools and languages, even within the same project, and want to use a single tool to manage my source control.