I'm using Sourcetree to mange a Bitbucket account for a Unity engine project I'm working on. Unity uses an Assets folder which holds image files, game world files, etc.
I created a branch to fix a bug, and inside this branch I deleted several files in the Assets folder (mostly PNG images) and added several new ones as well as modified some other pertinent files. I've commited the finished changes to that branch just fine, however now that I'm attempting to merge these changes into master, Sourcetree seems to act as if there are no changes to any of the files in this Assets folder. After it prompts me to resolve conflicts, when I look at the working copy the entire Assets directory isn't even visible when viewing "Pending" or "Conflicts" files. These files are visible when I select to view "Clean" files, and there seems to be no insinuation at all that the branch I'm attempting to merge from has deleted or added files in this directory.
Any ideas what's going on in this situation?
EDIT: The Assets directory is not specified in the .gitignore file.
EDIT2: If I use ctrl to select the master and branch together, I am able to view the changes which are correctly reflected. However the problem arises when attempting to merge.
It seems like the issue is something to do with git and not Sourcetree in particular. I attempted to merge using the git terminal and had the same issues arise, so my somewhat hacky and non-elegant solution was to simply create a new branch off master, paste all the files from the troublesome branch into that new one, commit that branch, and then merge it into the master branch. This merge was successful so it seems like git has some issue with the tracking on the original branch for some reason.
Hi,
After the merge are the files the new versions?
Would it be possible to add some illustrative screenshots?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
After the merge the files are the older versions (the ones in master NOT the ones in the branch). Here's some pictures for example:
Here is the Assets/Sprites/Player directory in the sprites_blurry branch:
Now here is that same directory in the master branch:
We can check the differences between the two branches here:
And we see that the pictures do, indeed show up as different:
Now with the master branch checked out we attempt to merge the blurry_sprites branch into the master:
It says conflicts need to be resolved so we look in the working copy. However, the pending files don't recognize any of the contents of the Asset folder as being altered:
We can see this when we view the clean files, and the Asset directory is visible, containing the master's version of those files, but no reference to the branch's deletion of them or inclusion of new files:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
I'm not quite following the pictures. In both the master and hotfix branches those files are listed as unstaged and therefore not committed etc. Shouldn't all the files be committed in the hotfix branch so they can be merged to master?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The files have been and are shown as commited and pushed on the Bitbucket server.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I would assume they are listed as unstaged because there is no changes between them and the last commit. In those example pictures I am switching between the two branches by checking them out respectively. In the first picture the hotfix/sprites_blurry branch is checked out and the contents of the last commit to it are visible. In the second picture the master branch is checked out and the contents of the last commit to it are visible.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Are you changing branches after you started the merge to master?
I.e.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Nope, I'm not switching branches mid merge. Here's a picture after attempting to merge if that helps at all.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes I'd expect to see that.
But this one looks odd
Why is there a merge and uncommitted files showing in this branch my understanding was you'd committed everything in this branch?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ah, in this picture I had attempted the merge commit but discarded the changes because it wasn't working properly as previously mentioned. It seems it kept that comment in the box below even though the merge commit never happened.
Without that discarded merge attempt, here is the working copy of the hotfix branch:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'd be interested to see what Git thinks of it, if you do the merge from the console/terminal?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.