I had a great
problem. I was working with Subversion repository, I'd prefer a gitflow policy
to manage souce code repository.
My initial idea was
to migrate to Atlassian BitBucket (http://www.bitbucket.org/).
I had used in the past both version: free and paied (team group). It's a gret
service expecially when BitBucket is integrated with Atlassian suite (JIRA,
Confluence and so on, https://www.atlassian.com/software).
After a period of
evaluation I discovered GitLab.com. This platform offers many versions of the
solution, on cloud or on premise.
I adopted the free
plan on cloud (https://about.gitlab.com/gitlab-com/):
Advantages
- Unlimited repositories
- Unlimited private collaborators
- 10GB disk space per project (including Git LFS and artifacts)
- Completely free, no credit card required
- Unlimited CI Runners to do parallel testing
- Alternate SSH port for git+ssh (443)
Features
- Unlimited public and private repos
- Create a new repo for even the smallest projects.
- Project importing
- Import existing projects from GitHub, BitBucket, Google Code, Fogbugz, or any git repo with a URL.
- Protected branches
- Control read/write permissions to specific branches.
- Wiki
- Keep your documentation within the project using GitLab’s built-in wiki system.
- Code Snippets
- Collect and share reusable code.
- Powerful APIs
- Control GitLab with a set of powerful APIs.
- Issue and MR Templates
- Create templates for issues and merge requests.
- Milestones
- Organize issues and merge requests into groups.
- Labels
- Categorize and track issues or merge requests based on descriptive titles.
- External Services
- Integrate with 24 external services (such as JIRA, Slack, Asana and more) to track progress across all the tools your team uses.
- Due dates
- Assign due dates to issues to make sure things get done on time.
- Powerful search
- Spend less time searching and more time building software.
I appreciated the
WIKI, ISSUE, Slack Integration and the import repositories from BitBucket.
I've started to use
the free plan. I create a group of project and I imported my projects from SVN.
In order to import
repository it's easy.
Here there's the
first problem with GitLab there isn't an available GUI to manage the resources
easily on you computer, some operation are avaiable via Web Browser at
gitlab.com. Clearilly, for git lovers this is an opportunity to use git bash.
Step to import
projects follow:
- Create a group via gitLab.com console (Optional)
- Create a project under groups and save the reference to repository, something like this : https://marco.genova@gitlab.com/my-group/super-project.git
- In local, checkout from svn the branch of the project to migrate, I've used TortoiseSVN (https://tortoisesvn.net/)
- Access to git bash
- Reach the directory target of the checout opertation
- Lunched the command:
- git svn clone svn://myhost/svn/repos/project/Branches/the/last/branch
- Launch the command, to expand buffer of HTTP connection
- git config http.postBuffer 209715200
- Add origin to project via command:
- git remote add origin https://marco.genova@gitlab.com/my-group/super-project.git
- Push on server:
- git push -u origin --all
- Exit from git bash
After this step, I
created development branch via Web Browser at gitLab.com.
A detail on SSH
connection, I had all configuration for gitHub and I had a ssh key pair created
yet so the operation was completed in 30 seconds (.. to Mars). The guide of
gitLab is easy to follow: https://docs.gitlab.com/ce/ssh/README.html#ssh
... For Raspberry PI
lovers, youcan create a cluster of PIs with Swarn and deploy with Docker
approach GitLab. I want to spend some time to implement this solution.
That's all Folks..
Please comment i f
you have some tips or tricks on this approach.