During the migration process, Timely Migration will group individual file revisions into Git commits. This brings one of the benefits of Git to the existing source tree as commits provide a more coherent view of the changes that occurred and what they were related to. Having changes grouped into commits is especially useful when looking at source history to research issues in the current product.
Timely Migration can either migrate an entire project, including all branches, tags, and folders, or pick and choose what is migrated through folder mappings and label filters. This provides the ability to prune the source tree and omit content such as large binary files that may have been checked into the source tree or dead projects that never got off the ground.
In addition to filtering content through folder mappings, the .gitignore file is supported for choosing what gets migrated.
If there is already a .gitignore file in the source repository, it can be used to filter out items when they are added to the destination repository.
If the existing .gitignore file was not maintained and interferes with migrating content that you do want, an override file can be used instead.
Additionally both or neither can be used if desired.
To help with testing an override .gitingore file, a helper tool is provided that will check all of the paths in an analyzed session and display what will be filtered without having to wait for the migration phase to complete. The tips of what will become the master branch can also be checked, but since the .gitignore file is used to check new files that are added to the Git index, checking the analyzed session data more accurately reflects what will be filtered during the migration.
After a session has finished, the data in the staging database can be used to help decide what to migrate to LFS.
Timely Migration will summarize file sizes by extension so you can discover large binary file types that you might not be familiar with and select them to migrate to LFS.
Once the extensions are selected, the Git LFS import can be run directly or scripted for running separately.
Note: For some adapters, file size information is only available when downloading files from the source repository. Since trial sessions do not download files, file size information for Git LFS planning is not available and a retail license is needed.
When using Timely Migration to migrate a TFVC repository to a Git repository in the same Team Project Collection, the work item ids from the original changeset can be added to the commit message prefixed with # to have Azure DevOps automatically link the ticket to the commit when the repository is pushed to Azure DevOps.
Timely Migration provides the ability to map users in the origin source control system to users in the destination repository. Various service accounts or instances of users that left and came back can be consolidated to clean up history.
Timely Migration has an option to locally cache files that are being migrated. When running multiple preproduction test runs to determine what you may want to selectively migrate, file caching can improve the performance of subsequent migrations, especially when the origin source control system is remote. Additionally if the origin source control system is corrupt and certain revisions fail to be retrieved, the file cache can be manually updated with the correct version if the file revisions are available from some other location.
The evaluation edition of Timely Migration does not restrict a migration to an arbitrary number of files or changesets. Restricting an evaluation edition in that way often makes it hard to gauge what exactly the final output will look like or how successful a migration will be because there is a lot of history outside of a limited subset of files. Instead Timely Migration takes the approach that all file revisions will be migrated, including changeset creation, comments, branch relationships and labels, while replacing the content of each file revision with the version information for the revision. With this approach the user can see what the final output will look like and feel confident that when a purchase is made, Timely Migration will meet their needs.