git tf pull only fetches and merges the last tfs commit

Apr 6, 2013 at 1:55 AM
If I follow the usage guide (https://gittf.codeplex.com/wikipage?referringTitle=Documentation), git tf will only pull in the last checkin.

At first, I thought it was rolling all the previous changesets into a single git commit. but no. It leaves my repo in a state of dysfunction because I've missed several checkins from other devs.

It was a bit of a pain to figure out that I'm supposed to use git tf pull --deep if I want all the checkins.

I don't understand why anyone would only want the last check in.

After cloning (a shallow clone), my workflow is like this:
git pull --rebase --deep
[ do work ]
git commit
git pull --rebase --deep
git checkin --associate wi#
I'm I missing something? why would anyone not use --deep?
Developer
Apr 6, 2013 at 1:57 AM
I don't understand what you mean by "a state of dysfunction". What it doesn't do is take only the changes in the latest changeset. All those intermediate changesets were rolled up. So the latest commit will have the same contents regardless of whether you use deep or not.

Deep is intended to be used if, for some reason, you might need to roll back to a changeset. It has no impact on the contents of the tree.
Apr 8, 2013 at 9:53 PM
I'm pretty sure that it did not pull all the changesets when I did git tf pull --rebase.

I had been working in a directory all day, and I did a git tf pull --rebase because I was ready to checkin. But the app didn't pass a smoke test because members were renamed and/or missing in files that I hadn't touched. Since our ci deployment was working okay, I figured the problem must be on my machine.

So I re-cloned the repo to a new directory. copied my changed files over from the previous directory and manually merged them (luckily, no-one else had touched them.) It passed the smoke test, and I was able to git tf checkin.

so you can see why I came to the conclusion that I have to do git tf pull --deep. It didn't make sense, and that's why I started the topic.

Sounds like I may have discovered a bug. So, I'll work on reproduction steps now and file a proper report when i'm done.
Apr 9, 2013 at 1:30 AM
So, now I can't reproduce it, and I had already deleted the troubled folder. I probably did something wrong on Friday.
May 24, 2013 at 8:53 AM
Edited May 24, 2013 at 8:53 AM
I can confirm this bug. I had the exact same situation.

I'm currently using Git-TF where all my fellow developers are using TFS. I did a 'git tf pull --deep --rebase' to get all the latest changes. I only got the last change without the two preceding changes which also been made in TFS. And no, those changes were not rolled up in that single pull - it only retrieved the changes of the last commit.

I fixed it by using 'git tf fetch' and doing a manual merge and rebase.

Will check to see if I can trigger this behaviour again.
Developer
May 24, 2013 at 12:36 PM
Hi ISardaukar,

Could you please provide the git-tf log corresponding to the issue? You could find logs in
Windows:  %LOCALAPPDATA%\Microsoft\Team Foundation\4.0\Logs\git-tf-*.log.
Linux:    ~/.microsoft/Team Foundation/4.0/Logs/git-tf-*.log.
Mac:      ~/Library/Application Support/Microsoft/Team Foundation/4.0/Logs/git-tf-*.log.
Alex
May 24, 2013 at 2:22 PM
Hi Alex,

It appears I only have logfiles from this afternoon and not from this morning when it actually happened. How long are those logfiles saved anyway?

Wilbert

Met vriendelijke groet / kind regards,

Wilbert van Dolleweerd
http://gplus.to/WilbertVanDolleweerd


Developer
May 24, 2013 at 2:35 PM
Hi Wilbert,

Log files are kept based on their number, i.e. git-tf invocations. If I remember well, 4-5 most recent files are kept. So, if you're able to reproduce the issue, it would make sense to copy the log file quickly.

Alex
May 24, 2013 at 2:39 PM
Okay, that means I have lost the logfile. When I am able to reproduce the issue, I will add a logfile to this discussion.

Met vriendelijke groet / kind regards,

Wilbert van Dolleweerd
http://gplus.to/WilbertVanDolleweerd