Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

SourceTree Repository browser: change multiple local paths simultaneously


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!

1 answer

0 votes
bgannin Atlassian Team Jan 14, 2019

Hi Alain,

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.

Brian Ganninger
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"

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events