SubGit license keys
There are several aspects to it, when talking about SubGit license keys. Couple of conditions to meet to get a free license, couple of options for those who want an extended commercial license. In this article we will try to cover all the questions that could occur when thinking about SubGit licenses.
- SubGit keeps an account only of the number of authors for the one last year
- SubGit considers only repositories registered with the given license key
- When using commercial licenses, SubGit would count only the users that are pushing to Git directly, ignoring those who push to SVN
- Companies could try out Git with SubGit for a small group of developers and then slowly upgrade when the number of Git developers would grow
I. SubGit license key
SubGit can perform an instant one time import from SVN to Git, and SubGit can create a mirror to keep two repositories in sync. To do one-time import all one has to do is to run $ subgit import
command with addition of some options. For more info please check out this article.
One-time import is always free for unlimited number of users, no license key is needed at all.
Open-source and academic licenses are free for unlimited amount of users as well. To get this key user has to send us public links to his project for our approval on it’s open-source or academic status.
Free “up to 10 Git and SVN users” license key allows to use Git in projects where there are less than ten developers. SubGit counts Git authors both who submitted their changes to Git repository directly as well as SVN committers whose changes were converted to Git repository by SubGit. To count them SubGit goes through all the Git repositories on that user’s server that have this key, looks up for one year of the commit history of each of those repositories and calculates the number of Git authors during this period. For example, if on the server there are three Git repositories:
repo1.git repo2.git repo3.git
And they’ve all been registered with the same SubGit key:
$ subgit register --key subgit.key repo1.git $ subgit register --key subgit.key repo2.git $ subgit register --key subgit.key repo3.git
Then, when counting authors, SubGit will overlook those three repositories and if someone called John Smith with the email set to “jsmith@domain” has been pushing to all those three repos, SubGit would reckon that it is the same person and count him as a single author. To view how many authors SubGit has detected run the following command:
$ subgit register --key subgit.key --print-committers GIT_REPO
The resulting number of authors could include as Git users that pushed to this repository directly or those users who were committing to SVN and have been imported as users to Git by SubGit. It particularly important when working with this license to have authors mapping being set correctly before starting using SubGit, before even an initial import. Otherwise the same SVN user could be counted as several Git users (for example if user has had changed his username during his time as SVN committer). Mind you to refer to this article regarding all the questions about authors mapping, authors.txt and authors.sh files.
To view the number of all authors working with the one converted Git repository, one has to enter his Git repository and run the git shortlog command:
$ cd /path/to/repository.git $ git shortlog -ens --since "1 year ago" --branches --tags
This would show statistics for the last year of using Git for both users committing to Git and SVN.
For commercial license keys SubGit takes into an account only those users who have been committing their changes to Git directly and doesn’t mind those who committed to SVN repository. SubGit in this case acts in a similar way - goes through all the Git repositories registered with this one particular license key on one user’s server, looks up to one year long history of those and counts only committers that have been pushing to Git repositories directly. To check out how many authors have been found use the same command:
$ subgit register --key subgit.key --print-committers GIT_REPO
Mind you, when Git repository is freshly created and mirrored, this command would return zero authors found because nobody yet has pushed anything.
When working with whatever license it’s important that every developer, every Git committer had his user.name and user.email configured correctly in order to make sure that SubGit does not count the same person twice (e.g. with different emails). To set up those parameters use the following commands:
$ git config --global user.name "John Doe" $ git config --global user.email firstname.lastname@example.org
Based on that information SubGit figures out whose are all those Git commits out there. Every Git commit has two fields, “git author” and “git committer”. Author is an author of a commit and committer is the one who has submitted those changes to the repository. SubGit counts only Git authors.
When using the cherry-pick command, an author of the original commit stays as the author of the commit that has been cherry-picked (only committer changes). So SubGit may count that other author against the license key as well.
SubGit also provides the opportunity to start using Git easily with a small number of Git authors. There is a small license for less then ten authors, that costs only 90 euro. It’s possible to give it a try, and then, when necessary, move on to the bigger amount of participants, as there are licenses for 25 authors, for 50 and so on, which allows the Git migration to grow steadily in the company. When SubGit notices that the number of authors had increased, 28 days would be granted to the user to resolve the situation. Afterwards the mirror would be deactivated.
II. SVN Mirror add-on for Bitbucket Server
When using SubMirror Add-on, all license keys are being processed, distributed and controlled by Atlassin and it’s plug-in manager. For a detailed description look up this article.
In general it works in a way that if user has a Bitbucket Server with a key registered to a particular number of users, for SVN Mirror Add-on this user would have to buy a license for exactly the same number of users. If the license is wrong, mirror would not be able to perform the synchronization.
In case of any questions please contact email@example.com.