All my repositories used to be in /first/path/to/projects
Now they are in /second/path/to/projects
I cannot create a symlink from /first to /second, so please don't suggest this as a solution.
I need to be able to change all the paths in the Repository Browser window. I started doing it manually one by one, then I decided to ask this question:
Is there a way to do a global search and replace?
I tried editing ~/Library/Application Support/SourceTree/browser.plist but after I saved it, I got an empty Repository Browser as if I had deleted everything.
I vaguely remember something about macOS needing to "import" plist files after you edit them. If this is the case, I don't know how to do that.
Any help would be greatly appreciated!
The plist is saved in the "binary plist file" format for performance. This is only properly editable by certain text or dedicated editors. If your editor handles it then you can search & replace for the exact replacements. That should, in theory, work.
If not there are two options:
1. open each broken bookmark - it'll ask for the new location
2. delete bookmarks, use the "scan directory for repositories" feature to re-add
Hope that helps a bit.
Senior Mac Developer, Sourcetree
Thanks Brian for your prompt reply and suggestions!
I did try editing the binary plist file in a binary editor. I also tried editing using Xcode. Both resulted in a completely empty repository browser window, even if I just edited one path. Maybe the binary plist format also contains the string length somewhere?
I know about the scan directory feature. Unfortunately, it's more complicated than a simple scan. I name my bookmarks manually. Therefore, I need to keep the names and only change the path. The automatic scanning will choose names automatically based on the last child in the path tree, e.g. I had given /first/path/to/projects/supplier-1/proj-1 the name "Supplier-1/Proj-1" and /first/path/to/projects/supplier-2/proj-1 the name "Supplier-2/Proj-1". The automatic scan would name both "proj-1"