From b0476ccfa6c5f7c2cb71fcc8100a8cf60d8a82f9 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 30 Aug 2017 17:57:45 +0200 Subject: Add TFS migration docs --- doc/user/project/import/index.md | 1 + doc/user/project/import/tfs.md | 43 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 doc/user/project/import/tfs.md (limited to 'doc') diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index 67e856a97cd..0f53ccc447b 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -8,6 +8,7 @@ 1. [From SVN](svn.md) 1. [From ClearCase](clearcase.md) 1. [From Perforce](perforce.md) +1. [From TFS](tfs.md) In addition to the specific migration documentation above, you can import any Git repository via HTTP from the New Project page. Be aware that if the diff --git a/doc/user/project/import/tfs.md b/doc/user/project/import/tfs.md new file mode 100644 index 00000000000..8d5eeb14a9e --- /dev/null +++ b/doc/user/project/import/tfs.md @@ -0,0 +1,43 @@ +# Migrating from TFS + +[TFS](https://www.visualstudio.com/tfs/) is a set of tools developed by Microsoft +which also includes a centralized version control system (TFVC) similar to Git. + +In this document, we emphasize on the TFVC to Git migration. + +## TFVC vs Git + +The following list illustrates the main differences between TFVC and Git: + +- **Git is distributed** whereas TFVC is centralized using a client-server + architecture. This translates to Git having a more flexible workflow since + your working area is a copy of the entire repository. This decreases the + overhead when switching branches or merging for example, since you don't have + to communicate with a remote server. +- **Changesets.** Changes in CVS are per file, while changes (commits) in Git + they always refer to the whole project. One of the consequences of this is that + it is very easy in Git to revert (create a change that undoes) or undo a whole + change. + +_Check also Microsoft's documentation on the +[comparison of Git and TFVC](https://www.visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc) +and the Wikipedia article on +[comparing the different version control software](https://en.wikipedia.org/wiki/Comparison_of_version_control_software)._ + +## Why migrate + +Migrating to Git/GitLab there is: + +- **No licensing costs**, Git is GPL while TFVC is proprietary. +- **Shorter learning curve**, Git has a big community and a vast number of + tutorials to get you started. +- **Integration with modern tools**, migrating to Git and GitLab you can have + an open source end-to-end software development platform with built-in version + control, issue tracking, code review, CI/CD, and more. + +## How to migrate + +The best option to migrate from TFVC to Git is to use the +[`git-tfs`](https://github.com/git-tfs/git-tfs) tool. A specific guide for the +migration exists: +[Migrate TFS to Git](https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md). -- cgit v1.2.3 From 794e37661d8cf847cda750a8e62a809889534125 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 6 Sep 2017 15:50:15 +0200 Subject: Make clear changeset vs snapshot method --- doc/user/project/import/tfs.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/user/project/import/tfs.md b/doc/user/project/import/tfs.md index 8d5eeb14a9e..6a297595d76 100644 --- a/doc/user/project/import/tfs.md +++ b/doc/user/project/import/tfs.md @@ -5,6 +5,12 @@ which also includes a centralized version control system (TFVC) similar to Git. In this document, we emphasize on the TFVC to Git migration. +## Why migrate + +CVS is old with no new release since 2008. Git provides more tools to work +with (`git bisect` for one) which makes for a more productive workflow. +Migrating to Git/GitLab there is: + ## TFVC vs Git The following list illustrates the main differences between TFVC and Git: @@ -14,10 +20,9 @@ The following list illustrates the main differences between TFVC and Git: your working area is a copy of the entire repository. This decreases the overhead when switching branches or merging for example, since you don't have to communicate with a remote server. -- **Changesets.** Changes in CVS are per file, while changes (commits) in Git - they always refer to the whole project. One of the consequences of this is that - it is very easy in Git to revert (create a change that undoes) or undo a whole - change. +- **Storage method.** Changes in CVS are per file (changeset), while in Git + a committed file(s) is stored in its entirety (snapshot). That means that's + very easy in Git to revert or undo a whole change. _Check also Microsoft's documentation on the [comparison of Git and TFVC](https://www.visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc) @@ -30,7 +35,7 @@ Migrating to Git/GitLab there is: - **No licensing costs**, Git is GPL while TFVC is proprietary. - **Shorter learning curve**, Git has a big community and a vast number of - tutorials to get you started. + tutorials to get you started (see our [Git topic](../../../topics/git/index.md)). - **Integration with modern tools**, migrating to Git and GitLab you can have an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. -- cgit v1.2.3 From 0aa4db5fe702f7bf32272ac6105aaf5ec79104e7 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 6 Sep 2017 16:59:07 +0200 Subject: Remove duplicate entry, order tools by name --- doc/user/project/import/index.md | 8 ++++---- doc/user/project/import/tfs.md | 6 ------ 2 files changed, 4 insertions(+), 10 deletions(-) (limited to 'doc') diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index 0a6c8546e61..8da6e2a8207 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -1,15 +1,15 @@ # Migrating projects to a GitLab instance 1. [From Bitbucket.org](bitbucket.md) +1. [From ClearCase](clearcase.md) +1. [From CVS](cvs.md) +1. [From FogBugz](fogbugz.md) 1. [From GitHub.com of GitHub Enterprise](github.md) 1. [From GitLab.com](gitlab_com.md) -1. [From FogBugz](fogbugz.md) 1. [From Gitea](gitea.md) -1. [From SVN](svn.md) -1. [From ClearCase](clearcase.md) 1. [From Perforce](perforce.md) +1. [From SVN](svn.md) 1. [From TFS](tfs.md) -1. [From CVS](cvs.md) In addition to the specific migration documentation above, you can import any Git repository via HTTP from the New Project page. Be aware that if the diff --git a/doc/user/project/import/tfs.md b/doc/user/project/import/tfs.md index 6a297595d76..8727c2ff6c3 100644 --- a/doc/user/project/import/tfs.md +++ b/doc/user/project/import/tfs.md @@ -5,12 +5,6 @@ which also includes a centralized version control system (TFVC) similar to Git. In this document, we emphasize on the TFVC to Git migration. -## Why migrate - -CVS is old with no new release since 2008. Git provides more tools to work -with (`git bisect` for one) which makes for a more productive workflow. -Migrating to Git/GitLab there is: - ## TFVC vs Git The following list illustrates the main differences between TFVC and Git: -- cgit v1.2.3