<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>gittf Discussions Rss Feed</title><link>https://gittf.codeplex.com/discussions</link><description>gittf Discussions Rss Description</description><item><title>New Post: Checkin creates only one commit on deep mode</title><link>http://gittf.codeplex.com/discussions/444033</link><description>&lt;div style="line-height: normal;"&gt;Hi &lt;a href="https://www.codeplex.com/site/users/view/yosy" rel="nofollow"&gt;yosy&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I've cloned the repository you've provided &lt;a href="https://github.com/yosy/tfs_test/commits/master" rel="nofollow"&gt;https://github.com/yosy/tfs_test/commits/master&lt;/a&gt; and when tried to check it into a TFS folder, I got a message:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;git-tf: cannot check in - commit 3560b45 has multiple parents, please rebase to form a linear history or use --shallow or --autosquash&lt;/code&gt;&lt;/pre&gt;

Unfortunately, Git-TF requires linear commit history to be able to perform deep check-in.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Alex&lt;br /&gt;
&lt;/div&gt;</description><author>arukhlin</author><pubDate>Fri, 17 May 2013 18:32:02 GMT</pubDate><guid isPermaLink="false">New Post: Checkin creates only one commit on deep mode 20130517063202P</guid></item><item><title>New Post: Checkin creates only one commit on deep mode</title><link>http://gittf.codeplex.com/discussions/444033</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
I started to play with gittf checkin, I have created a tfs repo in the online edition and clone it with gittf, pulled and merged &lt;a href="http://github.com/gitlabhq/gitlabhq" rel="nofollow"&gt;gitlabhq&lt;/a&gt; repository and tried to checkin using deep.&lt;br /&gt;
&lt;blockquote&gt;
git-tf checkin --deep&lt;br /&gt;
&lt;/blockquote&gt;
In my tfs repository I have got only one checkin which is the Gitlabhq commit (&lt;a href="https://github.com/yosy/tfs_test/commits/master" rel="nofollow"&gt;https://github.com/yosy/tfs_test/commits/master&lt;/a&gt;) and not all commits created by gitlabhq,&lt;br /&gt;
I have uploaded the git repository that I tried to checkin to github - &lt;a href="https://github.com/yosy/tfs_test/commits/master" rel="nofollow"&gt;https://github.com/yosy/tfs_test/commits/master&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>yosy</author><pubDate>Fri, 17 May 2013 11:52:53 GMT</pubDate><guid isPermaLink="false">New Post: Checkin creates only one commit on deep mode 20130517115253A</guid></item><item><title>New Post: git-tf: checkout conflict with files</title><link>http://gittf.codeplex.com/discussions/442853</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
One more question: why do you use --force and --ours parameters in your pull command? What exactly would you like to achieve? The --force parameter is used by Git-TF and means that it should download again the latest change set downloaded previous time. The --ours parameter is just passed to JGit and means that you wish to take the entire your tree without looking onto individual files. The latest action could cause big troubles, because GitTF keeps a map between commits in the &lt;em&gt;master&lt;/em&gt; branch and change sets downloaded from/uploaded to TFS. If you change your &lt;em&gt;master&lt;/em&gt; branch's history dramatically, that could cause serious and unpredictable issues.&lt;br /&gt;
&lt;br /&gt;
When using Git-TF, we strongly recommend to keep a linear history in the &lt;em&gt;master&lt;/em&gt; branch of your local repository that you use to exchange data between Git and TFS. If you don't do that, because of deep difference between TFS and Git ideologies, its highly possible that Git-TF won't be able to map Git's commits to TFS's change sets and vice versa. So, usually Git_TF users develop their code in other branches (even repositories sometimes) and always use --rebase option when pulling from TFS or merging their changes into the &lt;em&gt;master&lt;/em&gt; branch.&lt;br /&gt;
&lt;br /&gt;
Alex&lt;br /&gt;
&lt;/div&gt;</description><author>arukhlin</author><pubDate>Wed, 08 May 2013 15:51:16 GMT</pubDate><guid isPermaLink="false">New Post: git-tf: checkout conflict with files 20130508035116P</guid></item><item><title>New Post: git-tf: checkout conflict with files</title><link>http://gittf.codeplex.com/discussions/442853</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
I'm sorry to hear you have issues with Git-TF. What version of Git-TF do you have, and what error message do you get? Also, could you send us Git-TF log files reflecting the issue? You could found them as &lt;br /&gt;
&lt;pre&gt;&lt;code&gt;~/Library/Application Support/Microsoft/Team Foundation/4.0/Logs/git-tf-*.log
&lt;/code&gt;&lt;/pre&gt;

Just to unblock you for a moment: could you try and clone the latest version from TFS to a fresh new empty directory? After that you might fetch the cloned branch into a new branch in your working Git repository and merge the branches using Git.&lt;br /&gt;
&lt;br /&gt;
I do understand that it's extremely inconvenient, but just to unblock might work out... &lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Alex&lt;br /&gt;
&lt;/div&gt;</description><author>arukhlin</author><pubDate>Tue, 07 May 2013 19:18:12 GMT</pubDate><guid isPermaLink="false">New Post: git-tf: checkout conflict with files 20130507071812P</guid></item><item><title>New Post: git-tf: checkout conflict with files</title><link>http://gittf.codeplex.com/discussions/442853</link><description>&lt;div style="line-height: normal;"&gt;So I am stuck, I am trying to get the latest files from TFS on my Mac and I am getting an error about a conflict.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;I am running this command:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
git tf pull --deep --force --ours&lt;br /&gt;
&lt;br /&gt;
Thinking this will overwrite tell it to ignore the server version.  But that doesn't seem to work.  I also try --theirs and it gives the same error.&lt;br /&gt;
&lt;br /&gt;
How the heck do I tell this thing to PULL the latest version and merge this file that apparently conflicts.&lt;br /&gt;
&lt;br /&gt;
Thank you&lt;br /&gt;
&lt;/div&gt;</description><author>ProVega</author><pubDate>Tue, 07 May 2013 18:58:08 GMT</pubDate><guid isPermaLink="false">New Post: git-tf: checkout conflict with files 20130507065808P</guid></item><item><title>New Post: Error while trying to checkin for the first time</title><link>http://gittf.codeplex.com/discussions/440410</link><description>&lt;div style="line-height: normal;"&gt;Hi &lt;a href="https://www.codeplex.com/site/users/view/ionutvasiliu" rel="nofollow"&gt;ionutvasiliu&lt;/a&gt;,&lt;br /&gt;
&lt;br /&gt;
Could you please provide some additional information regarding this issue?&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Which versions of Git-TF and TFS server do you use?&lt;/li&gt;
&lt;li&gt;You mentioned that you checked in for the first time. Does it mean that the TFS folder you checked into was empty? Or it is not empty and other users could pend changes to it?&lt;/li&gt;
&lt;li&gt;
Could you send us Git-TF logs related to the issue. You could find them in:&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
Windows: %LOCALAPPDATA%\Microsoft\Team Foundation\4.0\Logs\git-tf-*.log.&lt;br /&gt;
Unix:  ~/Library/Application Support/Microsoft/Team Foundation/4.0/Logs/git-tf-*.log.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Alex&lt;br /&gt;
&lt;/div&gt;</description><author>arukhlin</author><pubDate>Tue, 16 Apr 2013 14:24:02 GMT</pubDate><guid isPermaLink="false">New Post: Error while trying to checkin for the first time 20130416022402P</guid></item><item><title>New Post: Error while trying to checkin for the first time</title><link>http://gittf.codeplex.com/discussions/440410</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
Did the checkin fail before due to a different reason then the second time you tried the checkin you got this error? what type of changes did you have?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
Mireille&lt;br /&gt;
&lt;/div&gt;</description><author>mireilleanwar</author><pubDate>Tue, 16 Apr 2013 14:19:35 GMT</pubDate><guid isPermaLink="false">New Post: Error while trying to checkin for the first time 20130416021935P</guid></item><item><title>New Post: Error while trying to checkin for the first time</title><link>http://gittf.codeplex.com/discussions/440410</link><description>&lt;div style="line-height: normal;"&gt;I'm trying to checkin for the first time to TFS using &amp;quot;git tf checkin --deep&amp;quot;. It reaches 55% but stops with the following error: &amp;quot;git-tf: failed to pend changes to TFS due to the following errors. Please fix the errors and retry check in. The item [filename with full path on TFS] already has pending changes.&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
How can this be solved? Thanks&lt;br /&gt;
&lt;/div&gt;</description><author>ionutvasiliu</author><pubDate>Tue, 16 Apr 2013 07:12:50 GMT</pubDate><guid isPermaLink="false">New Post: Error while trying to checkin for the first time 20130416071250A</guid></item><item><title>New Post: git tf pull only fetches and merges the last tfs commit</title><link>http://gittf.codeplex.com/discussions/439326</link><description>&lt;div style="line-height: normal;"&gt;So, now I can't reproduce it, and I had already deleted the troubled folder. I probably did something wrong on Friday.&lt;br /&gt;
&lt;/div&gt;</description><author>luv2code</author><pubDate>Tue, 09 Apr 2013 01:30:22 GMT</pubDate><guid isPermaLink="false">New Post: git tf pull only fetches and merges the last tfs commit 20130409013022A</guid></item><item><title>New Post: git tf pull only fetches and merges the last tfs commit</title><link>http://gittf.codeplex.com/discussions/439326</link><description>&lt;div style="line-height: normal;"&gt;I'm pretty sure that it did not pull all the changesets when I did git tf pull --rebase. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;/div&gt;</description><author>luv2code</author><pubDate>Mon, 08 Apr 2013 21:53:03 GMT</pubDate><guid isPermaLink="false">New Post: git tf pull only fetches and merges the last tfs commit 20130408095303P</guid></item><item><title>New Post: git tf pull only fetches and merges the last tfs commit</title><link>http://gittf.codeplex.com/discussions/439326</link><description>&lt;div style="line-height: normal;"&gt;I don't understand what you mean by &amp;quot;a state of dysfunction&amp;quot;.  What it &lt;em&gt;doesn't&lt;/em&gt; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;/div&gt;</description><author>ethomson</author><pubDate>Sat, 06 Apr 2013 01:57:53 GMT</pubDate><guid isPermaLink="false">New Post: git tf pull only fetches and merges the last tfs commit 20130406015753A</guid></item><item><title>New Post: git tf pull only fetches and merges the last tfs commit</title><link>http://gittf.codeplex.com/discussions/439326</link><description>&lt;div style="line-height: normal;"&gt;If I follow the usage guide (&lt;a href="https://gittf.codeplex.com/wikipage?referringTitle=Documentation" rel="nofollow"&gt;https://gittf.codeplex.com/wikipage?referringTitle=Documentation&lt;/a&gt;), git tf will only pull in the last checkin.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I don't understand why anyone would only want the last check in.&lt;br /&gt;
&lt;br /&gt;
After cloning (a shallow clone), my workflow is like this:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;git pull --rebase --deep
[ do work ]
git commit
git pull --rebase --deep
git checkin --associate wi#&lt;/code&gt;&lt;/pre&gt;

I'm I missing something? why would anyone not use --deep?&lt;br /&gt;
&lt;/div&gt;</description><author>luv2code</author><pubDate>Sat, 06 Apr 2013 01:55:20 GMT</pubDate><guid isPermaLink="false">New Post: git tf pull only fetches and merges the last tfs commit 20130406015520A</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hi ethomson,&lt;br /&gt;
Thanks for the detailed answer, How can I increase the http worker thread pool threads?&lt;br /&gt;
&lt;/div&gt;</description><author>yosy</author><pubDate>Sat, 30 Mar 2013 18:24:40 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130330062440P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Here is fine.  Another appropriate forum would be the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/tee/threads" rel="nofollow"&gt;TFS Cross-Platform / Team Explorer Everywhere forum&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
When we talk about thread safety and thread compatibility, we talk about the guarantees that you can make when calling from multiple threads with regard to race conditions, locking, memory, etc.  Nothing in your post suggests that we're violating thread safety guarantees.&lt;br /&gt;
&lt;br /&gt;
Posting your sample code here would be elucidating.  There are a number of factors at play here but I suspect that you're maxing out the http worker thread pool.  We limit the number of simultaneous connections to a single host, like most http clients.  Thus there's an upper limit on the number of downloads that can occur at once.  So throwing more threads at the problem is only going to make them wait.&lt;br /&gt;
&lt;br /&gt;
That's just my hunch, though.&lt;br /&gt;
&lt;br /&gt;
-ed&lt;br /&gt;
&lt;/div&gt;</description><author>ethomson</author><pubDate>Sat, 30 Mar 2013 18:21:16 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130330062116P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hi Youhana,&lt;br /&gt;
I am doing some experiments with downloadItems, and I am trying to do multiple clones at the same time (using ExecutorService, with 15 threads).&lt;br /&gt;
&lt;br /&gt;
As I can see, for some reason, as more items are downloaded the method get slow and slow -&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;Downloading 3098 items for changeset 14 , TOOK - 72113 ms
Downloading 3098 items for changeset 14 , TOOK - 98789 ms
Downloading 3098 items for changeset 14 , TOOK - 95447 ms
Downloading 3098 items for changeset 14 , TOOK - 96630 ms
Downloading 3098 items for changeset 14 , TOOK - 95786 ms
Downloading 3098 items for changeset 14 , TOOK - 95399 ms
Downloading 3098 items for changeset 14 , TOOK - 96376 ms
Downloading 3098 items for changeset 14 , TOOK - 95063 ms
Downloading 3098 items for changeset 14 , TOOK - 93769 ms
Downloading 3098 items for changeset 14 , TOOK - 94540 ms
Downloading 3098 items for changeset 14 , TOOK - 93962 ms
Downloading 3098 items for changeset 14 , TOOK - 94702 ms
Downloading 3098 items for changeset 14 , TOOK - 93103 ms
Downloading 3098 items for changeset 14 , TOOK - 88811 ms
Downloading 3098 items for changeset 14 , TOOK - 49782 ms
Downloading 3098 items for changeset 14 , TOOK - 33543 ms
Downloading 3098 items for changeset 14 , TOOK - 58334 ms
Downloading 3098 items for changeset 14 , TOOK - 36073 ms
Downloading 3098 items for changeset 14 , TOOK - 21014 ms
Downloading 3098 items for changeset 14 , TOOK - 21544 ms&lt;/code&gt;&lt;/pre&gt;

For one single download at a time it takes - 4 to 5 seconds.&lt;br /&gt;
As the documentation says, VersionControlClient is thread-safe.. do you know why it happens? or where should I ask it?&lt;br /&gt;
&lt;/div&gt;</description><author>yosy</author><pubDate>Sat, 30 Mar 2013 14:32:13 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130330023213P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hello, &lt;br /&gt;
&lt;br /&gt;
For example today to do a deep clone we call the following:&lt;br /&gt;
&lt;br /&gt;
QueryHistory - to get all the changeset to create commits for&lt;br /&gt;
ForEach Changeset in QueryHistory we call QueryItems at that version to get how the tree looks like&lt;br /&gt;
Then for each item returned we check whether we have downloaded it before or not using the version. If yes then we just reuse that blob id if no we call DownloadItem.&lt;br /&gt;
&lt;br /&gt;
The main advantage of the logic above is that it is simple but it suffers performance bottle necks.&lt;br /&gt;
&lt;br /&gt;
The alternative more complex logic would roughly look like this:&lt;br /&gt;
&lt;br /&gt;
QueryHistory - to get all the changeset to create commits for&lt;br /&gt;
Call QueryItems for the first changeset only &lt;br /&gt;
For each changeset after call QueryChangesetDetails &lt;br /&gt;
Then replay the changes that happened in every changeset&lt;br /&gt;
&lt;br /&gt;
We use codeplex to track all of the work for git-tf there are a couple of issues that are around improving clone's performance for large repos.&lt;br /&gt;
&lt;br /&gt;
Thanks, &lt;br /&gt;
Youhana&lt;br /&gt;
&lt;/div&gt;</description><author>youhanaNaseim</author><pubDate>Wed, 27 Mar 2013 17:40:34 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130327054034P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hi Youhana,&lt;br /&gt;
&lt;br /&gt;
Can you explain the second thing? where are we calling QueryChangeset ? do you mean QueryHistory?&lt;br /&gt;
&lt;br /&gt;
I am wondering, when I can see the roadmap/backlog of the project?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Yosy&lt;br /&gt;
&lt;/div&gt;</description><author>yosy</author><pubDate>Wed, 27 Mar 2013 17:28:49 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130327052849P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hello yosy, &lt;br /&gt;
&lt;br /&gt;
This is on our backlog to improve in the future. There are 2 things we need to do to make this scenario faster and perform better:&lt;br /&gt;
&lt;br /&gt;
1) Batch download as you specified above.&lt;br /&gt;
&lt;br /&gt;
2) When performing a deep clone today we will call QueryItems for every changeset we need to download (we only download the changed items though which is good). But QueryItems will bring in more data from the server than what is needed, we need to change that call to QueryChangeset which will only bring down info on the changed items. &lt;br /&gt;
&lt;br /&gt;
But this scenario surely needs some work.&lt;br /&gt;
&lt;br /&gt;
Thanks for your suggestion, &lt;br /&gt;
&lt;br /&gt;
Thanks, &lt;br /&gt;
Youhana&lt;br /&gt;
&lt;/div&gt;</description><author>youhanaNaseim</author><pubDate>Wed, 27 Mar 2013 17:14:54 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130327051454P</guid></item><item><title>New Post: Batch items download</title><link>http://gittf.codeplex.com/discussions/438201</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
I saw that cloning large TFS repository takes long time, I started to investigate the reason in git-tf source code, and I saw that in CreateCommitForChangesetVersionSpecTask - createBlob each item is download separately.&lt;br /&gt;
&lt;br /&gt;
I changed the code to do batch download to the temp directory and remove the downloadFile call in createBlob.&lt;br /&gt;
&lt;br /&gt;
It improved the download performance from 12 seconds to 4 seconds (!).&lt;br /&gt;
What is the reason for not using batch download?&lt;br /&gt;
&lt;/div&gt;</description><author>yosy</author><pubDate>Wed, 27 Mar 2013 17:05:08 GMT</pubDate><guid isPermaLink="false">New Post: Batch items download 20130327050508P</guid></item><item><title>New Post: Add associated Work Item information to commit comments</title><link>http://gittf.codeplex.com/discussions/437906</link><description>&lt;div style="line-height: normal;"&gt;Hi &lt;a href="http://www.codeplex.com/site/users/view/chrisortman" rel="nofollow"&gt;chrisortman&lt;/a&gt;,&lt;br /&gt;
&lt;br /&gt;
No, it's a different feature.&lt;br /&gt;
&lt;br /&gt;
We added a new option &lt;code&gt;--mentions&lt;/code&gt; to Git-TF &lt;code&gt;clone&lt;/code&gt;, &lt;code&gt;fetch&lt;/code&gt;, and &lt;code&gt;pull&lt;/code&gt; commands. When you specify this option along with the &lt;code&gt;--deep&lt;/code&gt; option, Git-TF adds references in the commit comments for any work items linked to the corresponding change set. Links are added in form of&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;#&amp;lt;number&amp;gt;   &amp;lt;work item title&amp;gt;&lt;/code&gt;&lt;/pre&gt;

lines, one line per a work item associated with the change set on TFS server. These comments are processed by TFS with Git version control when you push your local repository to the remote repository in the same Team Project Collection on the server, and build association beween commits and work items. &lt;br /&gt;
&lt;br /&gt;
The feature has been designed to support migration process from TFS version control to Git.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
Alex&lt;br /&gt;
&lt;/div&gt;</description><author>arukhlin</author><pubDate>Mon, 25 Mar 2013 15:56:20 GMT</pubDate><guid isPermaLink="false">New Post: Add associated Work Item information to commit comments 20130325035620P</guid></item></channel></rss>