TortoiseGit not showing icon overlays correctly - tortoisegit

I have a fresh repo, cloned from our gerrit box. When I check out the normal development "master" branch (named "development"), all of the icon overlays work properly.
The problem arises when, on that fresh clone, I check out another branch "development_test". After checking out that branch, the icon overlay shows all files as being unversioned. If I checkout the master branch, all is well once again. Doesn't appear to be the underscore as other branches can be checked out without issue. Running git status or using tortoise's "check for modifications" shows no changes.
Is there some setting, someplace, either on my system or on the remote, which would cause tortoise to think the tree was different enough to be considered unversioned?
Edit: I have tried to increase the max cached icons limit to over 10k, no change. Tried renaming the overlay key entries in the registry from " TortoiseX---" to " XTortoise---", also with no change. The problem seems to be confined to this one branch.
Running git for windows 2.7.1.2 and TortoiseGit 1.8.16.0, both 64-bit.

As you stated in you comment one file ends with a dot, thus, TortoiseGit namely TGitCache which is responsible for calculating the file statuses fails to load the index (libgit2 reports an error if an entry in the index is not valid) and therefore all files will be displayed as added.
Fix the invalid filename and everything should work.

Related

Is there a way to mark files as committed but not pushed on Windows Explorer?

My team isn't the best at checking on their own to see if they've pushed local commits. We work in documentation using XML files, and we all work on the master branch. We use the TortoiseGit client for Windows 10. Currently, there's an icon overlay for modified/unversioned files that changes to a green checkmark when committed/added.
However, it currently doesn't show an icon for commits that haven't been pushed to the remote. Is there anything I can do to add an overlay in Explorer for files that have been committed but not pushed? As it is right now, we keep getting conflicts because people are pulling without ever having pushed.
There is no such feature and based on Windows limitations there won't be (cf. https://tortoisegit.org/issue/1074).

Local git repository showing no “current” branch

HyWhen trying to refactor storyboard, it seems I have accidentally broken local git. Now it didn’t show a “current” branch anymore. All the branches I have are still there. I can also branch from existing branches, but I can’t make new commit. There’s no “A” or “M” when I made changes to code. There is still the blue lines indicating where you made changes in code files. What do I need to do to get got to work?
Here’s how I come to this situation:
I tried to refactor Main.storyboard. Selected a few Controllers, Editor->Refactor to Storyboard
I didn’t check at the time, but I believe the “Where” was set to “Base.Iproj” by default.
The new storyboard ended up not in the right place. Since I can’t “undo” this refactoring, I deleted it.
Committed the two code files I modified, deselected the storyboards and another file I didn’t remember the name of and hit commit. Then I discarded all changes from “Source Control” menu.
This break the code. Build failed.
So I checked out the newly committed one, didn’t work.
I checked out the one before. This time the build was successful. However, git stopped working like I described above. No “current” on any branch, and when tried to commit, it didn’t show any error. It simply didn’t have any effect.
However, when I tried to commit, the refactored storyboard that I have deleted showed up in the selection window with a checkbox, inside that base.Iproj folder. But I have go into my project folder and checked, there is no such file in that folder.
This is really not code related and all I did that broke git was listed above. I wonder what I have done so wrong that git is rewarding me with this maddening malfunction but more importantly, I need the local repository to work. Appreciate any help.
I’m using Xcode 10.2. I have tried restarting the Mac, XCode, and the project. None worked.

How to ignore uncommited change in Github gui for MAC?

I am using Github GUI for Mac.
Now I've some changes in my local repository, but I want to ignore them and pull latest remote repository.
I tried Repository/Pull, but got Git Error.
"•error: Your local changes to the following files would be overwritten by merge:
Classes/xxx.m
Please, commit your changes or stash them before you can merge."
I tried Repository/Synchronize, but got following error.
"Sync Failed. Please commit all your changes before syncing."
Any idea?
Place a checkmark near each of the changed files, then go to the Repository menu and click Discard Changes to Selected Files.
If you mean using MAC GUI only, check and right click the changed files then select the discard the changes.
if you want to remove your uncommitted changes, just do a checkout on those files again.
Stash is super easy too though, and it keeps your changes in a local 'bucket' or stash :)
For those on Github for Windows, it is not obvious where Discard All Changes is, so I wanted to share this:
Select Files by using check mark next to names.
Right click on Collapse All/ Expand All button with two arrows. (This button is on right side of Files to Commit box, and under Sync and Gear icons.) This is where Discard All Changes is >hidden<.
Sorry but too low level to add comment to #Leo wangs or #aspiringwebdev chain above. You gotta start somewhere...

svn update not updating

This is rather weird. When I do a Svn update, tortoise tells me that I am at the last revision, but there are plenty of exclamation marks everywhere telling me that lots of files are out of sync.
I can delete the old files, update, then get the new version, but a mere svn update on the file, on the directory or any parent directory does not work.
The (!) red circle icon means modified, not out of synch (I don't think such concept exists in Subversion). TortoiseSVN is telling you that you have local changes that have not been committed to the repository. You can inspect them with the "SVN Check for modifications" context menu.
The /!\ yellow triangle means conflicted. TortoiseSVN already tried to merge incomings modifications into your working copy but it failed because they interfere with some of your uncommitted local changes. You can review conflicts with the "SVN Check for modifications" context menu and you can launch a GUI tool to fix them with the "Edit conflicts" menu.

How do we keep track of our working copy's branch?

Are there any good techniques to help us know which branch (or trunk) our working copy is from? We recently converted to Subversion and we're using release branches. I had two developers commit changes to the release branch that should have been committed to the trunk. We're using CI (TeamCity), so I recognized the problem right away and was able to revert the changes but I'd like to prevent it from happening again. From within Visual Studio, especially, it's easy to make a mistake and commit to the wrong branch.
We're using TortoiseSVN and AnkhSVN.
Edited to add:
Just to clarify, I'm looking for a method to prevent careless mistakes, I already know how to find this information. There are two careless mistakes I'm trying to prevent:
Doing work on the wrong branch. If this is caught before commit, the developer has to merge the changes back into the correct branch.
Committing to the wrong branch. This combines the pain of point 1 with having to revert the changes in Subversion.
Edited to add: We just made the switch to the VisualSVN VS plugin and it has a toolbar that displays the path of the current working copy. I really like the reassurance that I'm working on the right branch.
Perhaps you should consider using a pre-commit hook: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html
Then you could do something like only approve checkins that have 'for release' in the comments for that particular branch or something like that and return an error message otherwise.
In AnkhSVN (in Visual Studio) the project url of your working copy is from is displayed in the 'Working on' field of the Pending Changes Window (View->Pending Changes).
The url of a file/folder is also displayed in the Visual Studio project window when you select a file in the Pending Changes Window or Working Copy Explorer (and in many cases even when you select a file in the Solution explorer; but this depends on the project type).
[Update: I just added AnkhSVN issue #581 for extension of the commit dialog.]
Tortoise SVN adds columns to the Windows Explorer view. In "Details" mode, right-click on column headers to get a list of available columns, at the bottom, select "More" to get a dialog of all available column types.
SVN short URL should quickly show you what the location is in the repository.
But this doesn't appear to work under vista ...
Right click the folder, move to the subversion tab, there it says the project it's linked to.
Also, in the commit dialog, it says so at the top of the dialog.
From the working directory:
svn info
URL will contain the branch your working directory points to.
<EDIT> Seeing how many people dislike the command line, the closes thing I found from TortoiseSVN is the "repo browser" which seems to use the selected branch as your starting path in the repo. </EDIT>
Avoid re-using working copies. If you're working on 2 places in the repository, have 2 working copies, named appropriately, like: Project-trunk, Project-release.
Here is a simple idea which might help:
Create an empty text file named "branch_XX" (or any name) and add it to your branch.
commit this and then when you switch to the trunk, the file will not appear in the solution explorer.
It sounds stupid... but it does the trick.
I really hope they will add something that might mark what branch we are using without going to other windows.
In AnkhSVN (in Visual Studio), right click on your project/solution, then Source Control -> Subversion -> Select in Repository Explorer. It will automatically select the branch you're currently working on (i.e. the branch you're switched to).
I don't think that the accepted answer for AnkhSVN works for Projects, since I always see the same URL in the "Pending Changes" even after I use the option "Switch Project" on a project.

Resources