Commit Graph

546 Commits

Author SHA1 Message Date
Matt Burke e17136e524 Use a context object instead of feeding back the fetchresult. 2014-12-27 11:53:22 -05:00
Matt Burke 64ba962e9e less churn: FindMergedRemoteAndFetch. 2014-12-27 11:37:22 -05:00
Matt Burke 7d5bd79d02 Add an extension method overload. 2014-12-27 11:33:03 -05:00
Philippe Miossec f2d713e9f6 Refacto: Store rename data in FetchResult and pass it to the fetch of the next branch! 2014-12-26 19:32:03 +01:00
Philippe Miossec aa323f0057 refactoring 2014-12-26 19:28:06 +01:00
Philippe Miossec 73f594485c Manage case where the first changeset of a clone is a rename changeset 2014-12-26 19:28:06 +01:00
Philippe Miossec 23f3da86bc Process changeset when with new branch (instead with old one)
Ignore rename changeset when discovered because
we want to process it as a changeset of the renamed branch.

This way, if changes are made (other than the branch renaming),
there will be fetched in TfsHelperBase.GetChangesets()!

Before that change, there would have been not fetched
because the tfs path was the one of the old branch but
the changes belong to the new renamed branch path!
2014-12-26 19:28:05 +01:00
Philippe Miossec 62147ffc7d Detecting an branch rename changeset 2014-12-26 19:28:04 +01:00
Philippe Miossec 322c55dbb4 Being able to clone sub branches and use of --with-branches option
We are now, not obliged to clone the trunk to use the `--with-branches` option!
That way the sub branch will be cloned (with all the branches merged into it)
 and all its children branches will be initialized after.

There is no more technical reasons that prevent cloning a sub branch...

Solve https://groups.google.com/forum/#!topic/git-tfs-dev/XndbEXRcx1M
2014-12-26 19:25:32 +01:00
Philippe Miossec 8b4f34c616 Prevent throwing of an Exception when reading missing git config key 2014-12-07 19:02:03 +01:00
Dave Hanna c6eadbb477 Handle error case where no merge info is returned by QueryMerges 2014-11-16 18:13:21 +01:00
Philippe Miossec 1b42dc93c1 Being able to clone TFS path "$/" 2014-10-27 00:58:52 +01:00
Philippe Miossec ebe97e7472 When no value found in the git config file, use the default one specified 2014-10-02 23:41:22 +02:00
Matt Burke f66d439707 Replace one-off BatchSize with a pattern for command-line + git config values. 2014-10-02 13:42:42 +02:00
Philippe Miossec e956d1d340 Expose a BatchSize option...
Since 21f36fa47c, tfs changesets are
 fetched by batches of 100 changesets (instead of all at once)
 to better support big history when cloning (and use less memory).

This option let the user specify the size of the batch
(because perhaps even 100 is too big for some big repositories).

Values accepted:
x < 0 => Only one batch with ALL the changesets
x == 0 => default value of 100
x > 0 => batches of x changesets
2014-10-02 13:42:41 +02:00
Matt Burke 158d16b758 Merge pull request #636 from spraints/ignore-unshelve-errors
Add the option to ignore unshelve errors
2014-09-25 10:17:46 -04:00
Matt Burke ba5add04ab unshelve --force ignores errors while Geting files. 2014-09-24 10:01:29 -04:00
Philippe Miossec 9851568ac7 Change call to CreateCommit() because used api is obsolete 2014-08-06 10:27:28 +02:00
Philippe Miossec c685a27aea Use the good Signature 2014-08-06 09:50:55 +02:00
Philippe Miossec 2a60c57f14 Update libgit2sharp to v0.18.1 2014-08-04 13:45:04 +02:00
Philippe Miossec ba6581a2d9 Drop VsCommon in namespace
(because that's an internal namespace)
2014-07-30 10:39:36 +02:00
Matt Burke f9c2485457 Refactor. 2014-07-28 10:02:35 -04:00
Matt Burke 95effc1d9a Let unshelve continue after errors. 2014-07-28 09:49:22 -04:00
Philippe Miossec cf5ca76d33 TfsPlugin is the same for all versions... 2014-07-15 17:34:47 +02:00
Philippe Miossec 235d516d77 Better handling big history by fetching changesets by lots
of 100 max (and creating commits in the same time)
before fetching another lot if needed....

& little refactoring
2014-07-13 21:53:10 +02:00
Philippe Miossec 3d300bc494 Querying history bounded when knowing the last changeset id wished 2014-07-13 21:47:39 +02:00
Philippe Miossec a1069ea609 Merge pull request #625 from pmiossec/perfs_get_last_changeset_id
Perfs get last changeset id
2014-07-10 15:43:04 +02:00
Philippe Miossec 4e638770d6 Merge pull request #618 from pmiossec/shorten_workspace_path
Shorten workspace to mitigate ntfs path length limit
2014-07-10 15:36:03 +02:00
Philippe Miossec 0225dd5ea2 Add checkout command
git tfs checkout changesetId [-b=branch_name]
ex: git-tfs checkout 2365
      git-tfs checkout 2365 -b=bugfix_2365

Solve #563
2014-07-10 14:29:58 +02:00
Philippe Miossec b9e253749a Shorten workspace to mitigate ntfs path length limit
(See https://github.com/git-tfs/git-tfs/blob/master/doc/Set-custom-workspace.md
for problem description)

Now that the ".git\tfs\RemoteId\" directory is only used
to create a "workspace" directory and is cleaned after
each command run, we could instead use a unique and
common directory with a shorter path (".git\~w")!

This way we are less likely to hit the ntfs path length limit
because we are not dependent of the remote id. If we
succesfully clone the trunk, we will be able to fetch all the branches
(except if there is files deeper needless to say)
2014-07-10 13:36:41 +02:00
Philippe Miossec 992a829c8d refactoring 2014-07-10 13:35:45 +02:00
Philippe Miossec cf35626f71 Don't retrieve all changes when getting just last changeset id 2014-07-10 13:35:44 +02:00
Arkady Shapkin 6b6dcde978 branch init support initializing by specifying git branch or git remote 2014-07-05 13:50:23 +02:00
Arkady Shapkin 129e6484fc OmittedParentBranch set when IgnoreBranches == true 2014-07-05 13:50:21 +02:00
Arkady Shapkin 5c30b7ec5d Option added to ignore not initialized branches on fetch 2014-07-05 13:50:20 +02:00
Arkady Shapkin e69357280f InitBranch support fetching parent branch 2014-07-05 13:50:18 +02:00
Arkady Shapkin fe7c3d612b FetchWithMerge trace improved 2014-07-05 13:50:16 +02:00
Arkady Shapkin 00ae6d46c1 Apply() moved after ProcessMergeChangeset() 2014-07-05 13:50:15 +02:00
Arkady Shapkin 74abd9e30b Check parent branch history only before current branch changeset 2014-07-05 13:50:14 +02:00
Arkady Shapkin 8ed59efddf RootBranch DebbuggerDisplay attribute added 2014-07-05 13:50:10 +02:00
Arkady Shapkin 9b4c538b41 ParseEntries() called only when really needed 2014-07-05 13:50:08 +02:00
Arkady Shapkin 591323c90d Renamed branch handling improved 2014-07-05 13:50:03 +02:00
Philippe Miossec b1f79105f1 Managing branch renaming in FindTfsRemoteOfChangeset() 2014-07-05 13:50:02 +02:00
Arkady Shapkin 0895882e6c Parent branch fetching fixed 2014-07-05 13:50:00 +02:00
Philippe Miossec ff819a2477 try to intialize the parent branch when commit not found... 2014-07-05 13:48:27 +02:00
Philippe Miossec 8ca3abcada FindTfsRemoteOfChangeset : Add message when not finding commit 2014-07-05 13:48:25 +02:00
Arkady Shapkin 7f4ce2d2a2 FindMergedRemoteAndFetch crash fixed 2014-07-05 13:48:22 +02:00
Philippe Miossec 88dfce4638 refactoring / cleaning 2014-07-05 13:48:19 +02:00
Arkady Shapkin fb6e78c11a FetchWithMerge method refactored 2014-07-05 13:48:13 +02:00
Philippe Miossec 971abcb3dc Add an option "-ignore-branches" to ignore merged branch when fetching in merge changeset
It correspond to the old way git-tfs worked!
2014-07-05 13:48:09 +02:00