source tree file status vs history and a few more questions

I'm really confused about this source tree

first of all, it's not revolving around a file browser, like P4. the only way to see my project in a tree-like fashion is in File Status, and even that by default is not set to tree. but in file status.... I don't get to see a file's history, branching...I have to go to Log / History for that, but here I don't get the tree, I get the most recent commits.. how can I possibly find my files in an unstructured list of 1 million commits?

to add more frustration, double clicking a file only works in some cases, not always. I have to Ctrl Shit O with tree view.... which is an impossible shortcut for one of the most important functions in this app. can I change it? why can't I just double click like in any browser?

Before and After only work in some cases, no idea why and when..seems to work for jpg files : / not for txt.

and why can I overwrite files in Windows if they are not checked out.. why is source tree/git not setting all project files to be read only/untouchable by default?.. can I enable that?

and I also managed to lose some text after saving a new version and reverting. instead of version one I had an empty text file. no idea why, I presume it's because I don't know the software... but this is deeply unsettling.

3 answers

You are right, SourceTree does not revolve around a file browser. It isn't intended to be a launching point for tasks related to editing files. Rather, it specializes at providing a summary of the status of your repository. If you want to see the whole tree, use the dropdowns above the file list to select "All" (instead of Pending), and "Tree View" (instead of "Flat List"). Be forewarned that SourceTree's tree view has some performance problems on Windows.

Log/History does give you the tree, with the most recent commits at the top. If you need to focus on changes to a particular file, you can use the search box in the File status view to find the filename you're looking for, then right-click and choose "Log Selected". This will show you a log of commits that have modified the file in question. Maybe the tree view mentioned above will solve this for you.

Not sure why double-clicking wouldn't work. Maybe the file type in question doesn't have a default program associated with it?

Before and After are only options for file types that can't be diffed. Text files will show a diff in the panel.

I don't understand what you mean about overwriting files that aren't checked out. Are you talking about files in the .git folder? Or files that aren't tracked by the repository (ignored files, maybe?) Short answer for any of those scenarios - that's just not how Git works.

Did you commit before reverting? Can you describe how you reverted?

It seems like you're expecting both SourceTree and git to be something other than what they are.  SourceTree is just a GUI front end for git.  It is not an IDE or a file browser and isn't meant to be.  

In git, which is a distributed version control system, "checked in" and "checked out" mean something different than what those terms mean in centralized version control systems.  Because you are working on a fully local copy of the repo, there is no reason for it to lock files and prevent you from making changes.  "Checked in" doesn't really exist in git and "checkout" just means to set the HEAD pointer and the contents of the working directory to a particular commit.

I think you need to take some time to learn about what these tools do and how they work and then come back and ask more specific questions if you have some.


thanks guys, I do need a version control system and I was expecting Git to be a free replacement for Perforce. according to the Internet.. Git is supposed to do that, and it's really popular. I'll try a few more alternatives I guess.

thanks and happy new year!

Well, it is free, and it is a version control system. It certainly wasn't designed to work like Perforce, it was designed by Linus Torvalds and the Linux community to be a distributed versioning system. In my experience, no two versioning systems are exactly alike. You should check out the Git Book to understand how Git works, so you can decide whether it works for your situation:

I'll agree with Seth again. Git has a different paradigm than some other source control systems, but it will probably work for you if you learn how it works and use it as it's meant to be used rather than trying to apply your current model onto it. It's rapidly becoming an industry standard. You can also probably get a plugin for whatever IDE you use that will allow you to use git within it, if that's what you want. I rarely ever browse the files in SourceTree and never open files from within it (although it can) - I usually have an editor open with all my files in one window and SourceTree runs separately in another windows, used only for source control operations such as committing, pushing, pulling, branching (although honestly the better I learn git, the less I bother with SourceTree at all)

I just discovered Perforce is free for businesses smaller than 20 people : D You are probably right Tim and maybe there's a way of working with this Git thing. And I'm not necessarily crazy about Perforce tbh. It's just that I used it in the past and it makes sense to me that a version control system should revolve around a powerful browser. I think ideally it should BE a browser [with minimal UI and deep functionality : D ]

There are other GUIs out there. You might try smartgit (not free for commercial use): or (if you are on Windows) tortoisegit, which integrates into Windows Explorer:

Awesome, tortoisegit looks really interesting! I'll give it a try. Thx!

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 30, 2018 in Sourcetree

Tip from the team: configuring Git or Mercurial in Sourcetree

Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...

570 views 1 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you