
Moving to GitLab: Yes, it's worth it - brodock
https://about.gitlab.com/2016/08/04/moving-to-gitlab-yes-its-worth-it/
======
mrmondo
As I always say on every GitLab post on HN (and no I'm not paid to nor do I
have any affiliation with the company) - we switched from a combination of
Github + Gitolite/Gitosis to GitLab not long after it was release and my god
it's damn good, It's really impressed us particularly in the last 12 months
how rapidly they're developing the product and getting new released / fixed /
features out. Especially like Gitlab CI w/ Docker.

~~~
jobvandervoort
Thanks, always great to see you here!

------
krautsourced
I really liked Gitlab when last I tried it, but in the end I went with
[https://gogs.io/](https://gogs.io/) instead. For a small-ish team this felt
like the most straight forward self-hosted solution. Still missing LFS though,
which sucks, but it's being worked on.

~~~
raiso-lo
We've been using [https://rhodecode.com](https://rhodecode.com) for internal
repositories: it is also open source, yet has better interface and out-of-the-
box LFS support.

~~~
mc42
The native subversion and mercurial support for the same repos is incredibly
attractive. Any idea how it converts them to a shared format in real-time?

~~~
raiso-lo
@mc42 They use a common layer called "VCS server". Here's how it looks like
from the system architecture standpoint:
[https://docs.rhodecode.com/RhodeCode-
Enterprise/admin/system...](https://docs.rhodecode.com/RhodeCode-
Enterprise/admin/system-overview.html#system-architecture)

~~~
mc42
Thanks, that's really cool.

------
OliverJones
Working for a 15-year old small software company, I converted a whole bunch of
ancient CVS stuff (yeah, yeah, don't laugh unless you also have 15 years of
profitability) to GitLab CE. After a couple of false starts it went flawlessly
and now works flawlessly.

(I used the tigris.org migration tools).

The GitLab team is doing a great job. Thanks you guys.

~~~
jobvandervoort
Thanks Oliver, that's great to hear.

Any way we can prevent those false starts for other people?

~~~
OliverJones
The false starts in our conversion were mostly struggles with how to
restructure our old CVS repos so they made sense in the world of git. A few of
them had to do with capturing some oddball CVS specific revision and branching
history.

None of the false starts were due to flaws or confusion in GitLab
specifically.

I should, and if you pester me I will, sanitize our internal how-to documents
and scripts and contribute them to the Gitlab community so the next guy can
benefit from our experience.

~~~
jobvandervoort
_Pesters!_

It would be great to receive some contributions to our documentation. It has
proven a big challenge to make sure it covers everything and stays up to date.
We'd really appreciate it.

------
technomancy
I was pretty impressed with how easy it was to get free CI runs on pushes and
merge requests with my OSS game:
[https://gitlab.com/technomancy/bussard/commit/73e84d11ed33ff...](https://gitlab.com/technomancy/bussard/commit/73e84d11ed33fff42922841fb38df910b7ee00f1)

~~~
jobvandervoort
We're working hard on making CI super easy to use and setup.

If you want to give it a spin, check out our recent blog post on starting from
0: [https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-
ci/](https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/)

~~~
scrollaway
I was trying to look into Gitlab Runner the other day. How decoupled is it
from Gitlab itself? Would I be able to somewhat easily write a completely
different UI, with a different framework/language (say, Django), hook it all
up to Github/Gogs and use Gitlab runner for the jobs themselves?

Because if that's what it is, that is pretty kickass.

~~~
sytse
The Runner interfaces with GitLab through a pretty simple API, so you could do
that.

One caveat is that we might introduce a new API by releasing a new version of
GitLab and GitLab Runner at the same time, then you would need to upgrade you
project to stay compatible.

BTW To ensure nobody is confused, you can use GitLab Runner to test all kinds
of projects on all kinds of hardware. We're discussing developing an
alternative to GitLab but reusing GitLab Runner.

------
atsaloli
I love how responsive our local (departmental) instance of GitLab CE is --
it's downright snappy compared to the corporate instance of JIRA. We love the
issue tracking subsystem of GitLab and use it as our main ticketing system.

We've done a few talks on Git basics to help increase adoption, and are doing
a free webinar "Git Foundations: Basic Concepts and Definitions" next week:
[https://www.eventbrite.com/e/git-foundations-basic-
concepts-...](https://www.eventbrite.com/e/git-foundations-basic-concepts-and-
definitions-tickets-26937970194)

This is the sort of result it makes us very happy to achieve:

"I have got by on minimum understanding of Git for a couple of years now--this
really brought up my confidence in using Git. After I learned the Git
internals, the esoteric commands really started falling into place."
\--Nicholas Santucci, Monitoring and Performance Engineer

~~~
jobvandervoort
That's some great feedback, thanks! Any feature requests for Issues?

If you plan on doing physical events, drop me an email (job at gitlab).

~~~
cdawzrd
Feature requests for Issues: priorities, and states other than open and
closed. These are the biggest things keeping us from using GitLab issues
rather than an external tool.

We need to be able to set priorities (ideally customizable, but at minimum
high/med/low). We can kind of do that through labels, but it's messy because
you can only search for one label at a time (no boolean combinations of
labels).

Right now, when you assign an issue to a user, it's considered "in progress",
and from there it can either be unassigned or closed. It would be nice to
separate the state of the issue from the assigned user, since in our current
workflow we assign many issues to a user, but that user might only be working
on a few of them at a time. Using our current bug tracker, we can
differentiate between "Open, unassigned", "Open, assigned", "Open, in
progress", "Fixed", "Verified", "Closed", etc. I know having a completely
customizable state diagram for issues is a big software task, but maybe there
is some intermediary level of complexity that would allow better tracking of
what is actually being worked on now vs. what is assigned to people.

~~~
haynes
Actually you can add priorities to labels :)
[http://docs.gitlab.com/ce/user/project/labels.html#prioritiz...](http://docs.gitlab.com/ce/user/project/labels.html#prioritize-
labels) You can also search for several labels in the current release. Just
select some in the dropdown :)

------
jsingleton
I've moved from BitBucket to GitLab and on the whole it works well. I still
use GitHub for open source projects though.

One problem is that a lot of things automatically work with BitBucket and
GitHub but GitLab need manual setup. For example, TeamCity has out-of-the-box
support for both BitBucket and GitHub but you have to set up GitLab as a raw
git repository (and create a user for it etc.).

 _edit:_ I should add that I've also used GitHub professionally with private
repositories. However, I quite like having separate credentials for open
source vs. more sensitive work.

~~~
jobvandervoort
Is there anything we can do from our side? We're very interested in making it
easier to integrate with GitLab, but also happy to invest some time into
making existing integrations easier to set up.

Our hope is that with time, it'll become obvious that when developing an
application, you integrate with GitLab as well as with BB and GH.

~~~
kmch
Maybe create a plugin for Visual Studio, like GitHub does. Also try to work
with JetBrains to make their GitHub plugin work with GitLab? The GitHub plugin
is available during installation, both with Visual Studio and JetBrains
products, which makes it much more convenient to use. Things like creating a
gist from code in IntelliJ or PyCharm also work out of the box with github.

~~~
eliranm
We're exploring the VisualStudio option but as Job said we currently don't
have the knowledge to make that happen. I've logged an issue for this request
[https://gitlab.com/gitlab-org/gitlab-
ce/issues/20686](https://gitlab.com/gitlab-org/gitlab-ce/issues/20686) you can
back it and follow it there.

As for JetBrains, we discussed this option with them - it would help if you
create an issue for that on their platform as a user request to surface it.
The more demand their users will have for this request the more likely it is
to happen.

------
lima
Phabricator is a great alternative, by the way. Really stable and has the best
code review interface / workflow I've ever used.

~~~
cookiesboxcar
I really want to love phabricator, but the local install for a new team is so
painful... any thoughts about how to make that better?

~~~
Karunamon
I have this problem too. It's not _hard_ to set up, there are just so many
tiny pieces that need to be run by hand that it's going to take a human well
over an hour to read through the docs and get it right.

Someone made a Saltstack state[1] that I've used and had some success with -
installing and configuring Salt from zero and using this config is _still_
faster than installing Phabricator by hand.

[1]: [https://github.com/bougie/salt-phabricator-
formula](https://github.com/bougie/salt-phabricator-formula)

~~~
lima
It's actually much easier to setup and operate than GitLab with its massive
dependencies.

Also a lot faster.

~~~
Karunamon
Gitlab is unfortunately a pig, in the large and bloated sense of the term.
Which is really sad! I love the app, it looks better than Phabricator and does
so much more, but then I can throw Phabricator on the same droplet I use for
plenty of other stuff with resources to spare for $5/month, where Gitlab would
require a dedicated $10 instance just due to memory usage alone.

Guess I'm just not the target audience :(

~~~
brodock
You can use gitlab.com for free... don't need to install it in your own box.

------
dijit
I posted before[0] about why I moved to gitlab; I'm using a self-hosted
instance and the only real complaint I have is resource consumption. But if
you bite the bullet a bit it's a really great product.

The other thing would be "ease of deployment" or lack thereof- if you're going
for anything other than omnibus installs or docker images then it can be a bit
painful. (I wanted to run on freebsd for example).

But, yes, it's super nice to have something not only comparable to github but
even superior in some areas. I would definitely run the enterprise edition if
that were my decision at work.

[0]: [https://libsecure.so/t/github-alternative-aka-weve-moved-
git...](https://libsecure.so/t/github-alternative-aka-weve-moved-git-drk-
sc/203)

~~~
haynes
How has your experience of installing gitlab on freebsd been? Anything in
particular that can be improved? I'm pretty sure the gitlab team is open for
all kind of improvements. :)

~~~
dijit
Someone wrote a very nice and detailed guide, however upgrading isn't
mentioned[0]

it also suggests operating under bad practices like running gitlab from /home/

I guess I could write a decent salt-formula to do all this, but I can't handle
upgrading of gitlab easily, it always breaks when I take a new branch from git
and run a gitlab-ctl reconfigure.

[0]: [https://github.com/gitlabhq/gitlab-
recipes/blob/master/insta...](https://github.com/gitlabhq/gitlab-
recipes/blob/master/install/freebsd/freebsd-10.md)

~~~
hs86
The pkg-message of the Gitlab port has some useful links to more
documentation.

[https://www.freshports.org/www/gitlab/](https://www.freshports.org/www/gitlab/)

[https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/in...](https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/install/installation-
freebsd.md)

[https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/up...](https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/update/freebsd_patch_versions.md)

[https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/up...](https://github.com/t-zuehlsdorff/gitlabhq/blob/master/doc/update/8.6-to-8.7-freebsd.md)

------
jobvandervoort
As always, we're happy to answer any questions about GitLab.

~~~
microcolonel
I feel as though some of the recent UI changes were cosmetic and degraded the
experience. I was especially unhappy about the sidebar being pushed into a
hamburger menu (which _can_ be pinned open, mind you).

I'd really like for UI updates in the future not to be jarring and seemingly
pointless. I really liked the UI right before the overhaul, only minor tweaks
seemed truly necessary. Many of the tweaks I would have suggested before have
come through; such as putting profile information and notifications in the
upper right hand corner. I'm glad about that.

Other than that; I'd like to say that I have really liked using Pivotal
Tracker for developing software. It has a rigid pipeline between requirements
and results. Configurability ruins some productivity tools. It would be swell
to have something like "Pivotal Tracker lite" associated with GitLab (in that
GitLab CI is). It's not a difficult kind of software to do reasonably well,
and it would make GitLab the ultimate software project productivity suite.

~~~
tauriedavis
Thanks for your feedback - we are always working on improving the UX/UI and
appreciate your input! I know that large changes can feel jarring at first but
we hope that in the end, they help improve workflow and productivity.

The sidebar is a global navigation and not always necessary when interacting
with page-specific content on the site. GitLab is very content heavy and by
allowing the sidebar to be collapsed, it allows users to have more space on
smaller screens to read/scan the information that they need. As you mentioned,
the sidebar can be pinned so users can view the navigation all the time if
they prefer, esp if they are using a larger screen.

If you have other examples of changes that you felt were pointless, I'd love
to find out the reason for the change for you!

I also urge you to voice your opinion by making an issue for changes that you
think would help improve the user experience. [https://gitlab.com/gitlab-
org/gitlab-ce/issues/new](https://gitlab.com/gitlab-org/gitlab-ce/issues/new)

------
insanebits
I'm recently setup Gitlab for my personal projects, import from bitbucket was
a breeze.

I've used omnibus installer and it was almost painless, only a couple of
issues because of LXC limits.

My only concern is resource usage, it does take at least 2Gb memory, are there
any options to tweak it?

~~~
jobvandervoort
We do recommend you allocate resources generously, with 2Gb minimum.

That said, there are ways to tweak it. I believe you can reduce the default
amount of Unicorn workers to one, as a start. Further than that I'm out of my
league; I'll ask one of our awesome service engineers to respond here.

~~~
zegerjan
Also, please lower the default number of unicorn workers from 3 to 2.

------
markwillis82
We are in the middle of migrating from Bitbucket to our self hosted CE version
and apart from a few permissions issues on SSH keys we have had no issues with
the whole process and updating our deployment system was just a case of
changing git urls.

Well done Gitlab :)

~~~
jobvandervoort
Thanks Mark!

------
gravypod
The idea of switching from one company that holds your data to another doesn't
make sense to me. What does make sense and is worth working for is being able
to host my own code on my network. That's where GitLab really comes in for my
work. I have no reason to switch from one platform to another if I can't host
it in my own network.

GitLab was a great idea but from my experience it's been built on an extremely
frustrating method of deployment.

I'm not a dev ops person nor do I want to be. I want things to be as simple as
"run this and it will work" without me needing to do much of anything.

I tried to setup a GitLabs instance but after running a simple update command
(apt-get update && apt-get upgrade) it broke. It seemed to have something to
do with something called Sidekick at the time or something along those lines.
It was just frustrating that the automated update scripts from their deb BROKE
their own system. That just should never be a possibility in a system, I have
near no tolerance for dealing with crap like that.

After messing around with it for a while I gave up and tried Gogs. It was
easier to use but using go's build tools yielded similar problem for me. It's
not the easiest thing to setup and takes a bit of know how to get Gogs and
golang's build tools working (I know someone is going to tell me I'm wrong and
that this did not happen to me).

I settled on GitBucket [1] and I have to say I'll not be switching to anything
else. It was simple: download and run a single jar file. I setup an
unprivileged user, it's own opt folder, and a small init.d script to do
everything I needed. To update I download the latest version and I do a drop
in replacement with the .jar. Nothing difficult. (Sadly GitHub seems to have
put legal pressure on them to change their 'look' so they've done that but
before that it was perfectly stable in appearance unlike GitLabs).

If anyone is interested in the self-hosting aspect of this, I'd say don't look
at GitLabs, Gogs, or any of the other systems out there. Look at GitBucket.

[1] - [https://gitbucket.github.io/](https://gitbucket.github.io/)

~~~
dijit
I'm surprised you're not running the docker instance, it's literally "run this
and it will work" in fact, most of their instructions are rather on the nose.

~~~
gravypod
Getting docker working for me has always been a pain. I've still not gotten as
docker install working across updates or dist-upgrades.

Again, I'm as much of a sysadmin/debops is a neurologist in the way that I'm
in no way a neurologist. If I cut open someones head, maybe messed around with
some things, and closed it up they might be ok. That's how my servers 'run'.

Anything outside securing the system (ssh key auth, non-root user, etc) to a
standard good enough for me is not doable.

------
merb
We moved from BitBucket on premise to GitLab CE on premise. Actually most
things now just works. Updating is a breeze. Instead of downloading a
installer and copying / fixing server.xml we can just do a apt update && apt
upgrade -y.

Some things are a little bit akward but BitBucket didn't had this, too:

\- FF only merges is only EE (too bad that would be a really major selling
point even for CE, squash button would be unnecessary)

\- CI is a little limited compared to a full blown Jenkins \- We hit a CI bug
which still shows up "Running" Pipelines [https://gitlab.com/gitlab-
org/gitlab-ce/issues/19455](https://gitlab.com/gitlab-org/gitlab-
ce/issues/19455)

\- Artifacts API is limited to everything or nothing

\- CI Stages can be defined as trigger only but you can't have multiple
triggers that starting different things (considering a production trigger and
a testing trigger while you don't want the 'manual' thing directly in GitLab,
especially when integrating into other systems makes this a flaw)

\- No Custom CSS (yeah our logo isn't 72px x 72px...)

But then again BitBucket didn't had these things anyway so except the bug it's
nothing that would've hold us back. Everytime you wanted a Feature for
BitBucket, the guys said that there is/was an extension. How dare that costed
a shitload of money which would even superseeded GitLab EE.

~~~
zegerjan
> \- CI is a little limited compared to a full blown Jenkins - We hit a CI bug
> which still shows up "Running" Pipelines

Do you have more examples of workflows we are not supporting at all or well
enough?

> \- Artifacts API is limited to everything or nothing

Right you are, you might want to track this issue[1].

> \- CI Stages can be defined as trigger only but you can't have multiple
> triggers that starting different things (considering a production trigger
> and a testing trigger while you don't want the 'manual' thing directly in
> GitLab, especially when integrating into other systems makes this a flaw)

I don't fully comprehend what you mean, could you elaborate?

[1] [https://gitlab.com/gitlab-org/gitlab-
ce/issues/20603](https://gitlab.com/gitlab-org/gitlab-ce/issues/20603)

~~~
merb
Not supported Workflows: \- JUnit XML or similar output reading to have a nice
output what's broken / worked \- Checkstyle output / pylint / tools for other
languages \- What I said about Artifacts \- Artifacts are hard to Track I
already wrote into [1] which would also be a good way \- Actually external
Triggers can't be conditional:

[https://gitlab.com/gitlab-org/gitlab-
ce/issues/19826](https://gitlab.com/gitlab-org/gitlab-ce/issues/19826)

So either that or have a way to name triggers which I opened here:

[https://gitlab.com/gitlab-org/gitlab-
ce/issues/20574](https://gitlab.com/gitlab-org/gitlab-ce/issues/20574)

And I guess these are the things my company does / did with jenkins.

There is also another downside but we don't do that anymore: You can't push
from CI to master branches, some people do tag and create builds with their CI
/ CD (which we also did) but now we just push a Tag to the Repo and the CI
will be: '\- only: tags' and catch that up.

That's all stuff I can think of now which is probably not supported by most
"simple" CI / CD Tools. I guess only the big one's have such a thing like
TeamCity, Jenkins and Bamboo.

------
oDot
I'm working on a proper Docker setup for GitLab development which I think can
be made production-ready pretty easily after the development version works.

It's hard separating the different moving parts (gitlab, gitlab-workhorse,
gitlab-shell+ssh, postgres/mysql, redis) but I think I will have a merge
request ready soon enough :D

~~~
jobvandervoort
Wow, this sounds great! Do you have anything to share?

Do you leverage GDK? [0]

[0]: [https://gitlab.com/gitlab-org/gitlab-development-
kit](https://gitlab.com/gitlab-org/gitlab-development-kit)

~~~
oDot
Not right now. I'm following the install from source guide so it'll be as
close as possible to production. I'll change some things the omnibus package
does better, then apply the GDK stuff so people could use it for development.

I have some code. I guess I can submit a merge request + issue on gitlab-ce
and gitlab-workhorse, but I need to read CONTRIBUTING and PROCESS first :P

------
tomjen3
Gitlab is pretty awesome, especially because they let you have unlimited
private repositories on their website. So far my biggest annoyance is that
when you click on a project you don't get a list of files (like you do on
github) but just the projects readme, and even then only if you remembered to
capitalize it.

~~~
connorshea
In Settings you can set the "Project view" to Files view and it'll give you
what you're looking for :)

[https://gitlab.com/profile/preferences](https://gitlab.com/profile/preferences)

------
chrisan
How about costs compared to Bitbucket? I appreciate what you guys are doing
but I think Github is cashing in on their brand and for a while they had the
best UX (they still might! but I no longer care anymore as all the competitors
are "good enough" for me) which lets them set a high premium people will pay.
However, I think it's unfair to leave out Bitbucket, they have come a long
way.

The first example of 8 developers and 20 repos is $10/month

or 100 developers and 300 repos examples is $100/month

What is the cost and/or time involved in maintaining DigitalOcean (or whatever
VPS)? Security updates, upgrades, redundancy/availability, backups, or when
something goes wrong the time involved in debugging/fixing (github/bitbucket
have had their problems, is gitlab 100% available w/o hiccups)?

~~~
icebraining
Very little time, in my experience. unattended-upgrades takes care of most
security updates, a gitlab update is just "aptitude update && aptitude install
gitlab-ce", and it automatically handles offsite backups.

------
matt4077
I tried their free tier and it was just extremely slow. A small project where
commits usually took 5 seconds now needed >1min for any operation.

Moved it all into the google cloud and it works at the speed of the network.
But we don't really need any of the features except the git repository anyway.

~~~
connorshea
Free tier as in self-hosted GitLab CE or GitLab.com?

Self-hosted might be slow if you don't have enough RAM on the system you're
running it with, but as long as you have more than 2GB it definitely shouldn't
take more than 1 minute for a basic operation.

As for GitLab.com, that can be slow (we're working on improving it, much
better now than it was last year, but still progress to be made!), but it
should never take more than a minute, otherwise it'd just timeout. When did
you try it out?

------
zthall
If GitLab's issues allow you to mark as unread or flag it in any way to come
back to it, then I'm sold.

I can't believe this still isn't a Github feature. I don't know how many times
I've lost track of issues or forgotten because I can't flag them.

~~~
connorshea
You'll be very happy to hear about Todos[1] then! You can add a todo or mark
it as done from the sidebar on any issue or merge request. It'll stay in your
Todo list until you mark it as done or comment on the issue/MR.

We'll be waiting for you at
[https://gitlab.com/users/sign_in](https://gitlab.com/users/sign_in) :P

[1]:
[http://docs.gitlab.com/ce/workflow/todos.html](http://docs.gitlab.com/ce/workflow/todos.html)

------
crossman
FWIW, I recently transferred my side project from bitbucket to gitlab and I'm
really happy with it. The issue tracker is significantly better, and the built
in CI seems great but I haven't started using it yet since I already have
codeship going.

~~~
btcmike
I did the same last month and then transferred back to bitbucket.

The response time on gitlab.com was painfully slow. That extra 2-3 seconds
waits for each commit was enough to drive me back. I still use github for
professional projects and bitbucket for personal ones.

~~~
bovermyer
I had the same experience. The other thing I would add is that the social side
of Gitlab is not as refined as GitHub's. There's no "timeline," for example.

I pay for GitHub and enjoy it.

~~~
0x0
On the other hand, gitlab's "network" view of commit branches is excellent and
I've never been able to find anything remotely similar on Github. Essential to
manage development in multiple concurrent branches.

~~~
__david__
Isn't that just gitk[1] or tig[2] (my favorite)?

[1] comes with git, screenshot:
[http://static.lwn.net/images/ns/kernel/gitk.png](http://static.lwn.net/images/ns/kernel/gitk.png)

[2] [http://jonas.nitro.dk/tig/](http://jonas.nitro.dk/tig/)

~~~
0x0
It's similar, but gitlab's graph has a much more readable and sensible 2d
layout. The way tig and gitk line up/layout the branches is often very
confusing. Gitlab makes it much clearer where the branch lines go, while
tig/gitk seem to left-align everything as much as possible, making the lines
twist and turn and difficult to trace.

------
hackerboos
I've run Gitlab for about a year now and I think it's great.

However it is sluggish on a 1GB box and I think you need at least 2GB. Since
Linode doubled the RAM on their $10 boxes then you can get it for the same
price.

~~~
OliverJones
My gitlab-ce instance runs on a vm on an internal hypervisor machine. I just
upped the RAM provisioning from 2gb to 4gb, and now it's plenty fast.

One of the benefits of working for a software company that started in the pre-
cloud era is a surplus of server boxes, now retrieved from colo racks. :-)

------
igtztorrero
If your concern is cost, bitbucket always have free private repositories. If
your looking for privacy and protect your sacred code, install gitlab on one
of your server or vps. Thats what we do at SAIT

~~~
cm3
Fair point, but it's important not to fool ourselves in terms of data safety
or at least specify what we mean when we say "it's private on your vps".

If your code is private and not meant to fall into external hands, then
putting it on a VPS won't protect it. The only way is to put it on a machine
that's only used from workstations that access it in a local-only fashion,
inside containers/vms that have no way to contact the outside world. This
means the build process may not access the internet and has to rely on a cache
of external libs if needed and allowed. This also implies that network config
won't allow access as forbidden via VLANs or similar measures.

If someone wants to steal your code, grabbing it from your vps won't be harder
than doing the same on github/gitlab because the procedures to get access will
be very similar.

I suspect by private code you mean code which shouldn't be publicly clone'able
but isn't behind locked doors otherwise.

------
hudell
I recently moved my personal project from GitHub to GitLab and the whole
process took me less than a minute, with a simple git remote set-url on the
client side. The future is amazing.

~~~
kh_hk
Not wanting to diminish what GitLab is doing, but what you mention is an
inherent characteristic of git itself that applies the same way to GitHub,
Bitbucket and a self hosted git bare repository. Any git host should expose a
git interface for it to work as a git repository.

~~~
hudell
Yes, but they simplified it a lot. I just connected to github, chose the
repository and clicked import. Maybe all of those services have it that way,
but I'm just glad that GitLab had it.

~~~
kh_hk
That is a different case than configuring a different remote on config and
pushing to another host which is what I interpreted reading your comment, my
bad.

Out of curiosity, does the import process include all issues, PR and comments?

~~~
haynes
almost, yes. issues, wiki, PRs and comments are imported. Afaik cross repo PRs
are not supported yet. But they're working on that. :)

~~~
sytse
For sure, progress on that is in [https://gitlab.com/gitlab-org/gitlab-
ce/issues/15528](https://gitlab.com/gitlab-org/gitlab-ce/issues/15528)

(BTW labels are also imported)

------
hochchristoph
Gitlab users: How many hours per year do you spend on doing maintenance for
your setup? (servers, updating, backups, troubleshooting, etc.)

~~~
OliverJones
Originally rigging gitlab-ce took a couple of hours, including standing up a
VM, and setting up an S3 bucket for fire storage.

Checking backups once a week, 3 min.

Updates twice a month (using apt-get upgrade) 10 min counting integrity
checks.

Nuisance factor: updating gitlab-ce drops a tiny little backup file in the
backups folder.

~~~
jobvandervoort
If you want to skip the mini backup before upgrades, run:

`sudo touch /etc/gitlab/skip-auto-migrations`

Docs on it here:
[http://docs.gitlab.com/omnibus/update/README.html](http://docs.gitlab.com/omnibus/update/README.html)

------
matthewmacleod
GitLab is great and it's lovely to see a diverse selection of tools, but I'm
not too convinced of the cost benefits – for a team with 100 developers, the
annual cost of ~$11,000 is a pretty small amount compared to the maybe $25m
salaries you'll be paying!

~~~
danielrmay
Avg salary of $250k per dev? Are you hiring?

~~~
dr_zoidberg
Well where I live, the final salary you get in your pocket is about 60% of
what the employer has to pay (the rest are taxes and "social charges" which
include medical insurance and retirement funds). If it's the same where OP
lives, then he was probably thinking about 125k salarys + taxes, charges, etc.

Also, he must be considering other expenses that come with having employees
(though he did say "25m in salaries").

Still, if you bring the salaries to 100k a year, it still compares favorably
to GitLab: $11k vs 10M.

------
jgalt212
Dumb question:

For self hosting, what's wrong with a shared file server and nice GUI such as
TortoiseHG?

There seem to be a bunch of Git GUIs as well:

[https://git-scm.com/download/gui/linux](https://git-
scm.com/download/gui/linux)

------
romanr
What is the benefit of moving to Gitlab from Bitbucket (or Github) for private
repos? Same feature set, Gitlab cost more per user and on top of all you have
to run your own server? Am I missing something here?

~~~
jobvandervoort
I'll leave the marketing talk to less biased people here, but do note that:

\- you can use GitLab.com for free: unlimited public and private repositories,
unlimited collaborators, free hosting of your Docker images, free hosting of
your static site with any static site generator and free CI / CD

\- GitLab CE is fully open source (MIT Expat). You can easily install it
anywhere you want.

~~~
chrishacken
"you can use GitLab.com for free"

It seems like that is the main selling point. However, I think that most of us
don't want the extra weight of managing yet another tool. Thus why many of us
use GitHub to begin with and not something else...

~~~
corobo
Just to clarify GitLab.com is their hosted version, not the self-hosted option
(Which is GitLab CE)

~~~
chrishacken
Yup, my mistake.

------
educar
We are a company of 10 on GitLab CE (We selfhost via the Cloudron). Costs us
~60 a month, so it's already cheap for us. We also have a bunch of other apps
on it which saves us more money.

------
collinmanderson
> GitLab really started accelerating in 2015 as this commit graph shows

They're using a Github commit graph to show how good Gitlab is? GitLab's
graphs aren't as nice? :)

------
spriggan3
Does Github has a on premise offer like Bitbucket or Gitlab ?

~~~
moby
Indeed we do. GitHub Enterprise 2.7 was just released yesterday:

[https://enterprise.github.com/home](https://enterprise.github.com/home)

------
thinkMOAR
I would like to see that there is just one gitlab version, and that the
enterprise features are simply available in the community edition too. I will
not pay just for a feature like repo mirroring, but it's i think a feature
many people will use and or utilise when moving, migrating to a gitlab setup.

But it is the one and only feature i am missing so not worth upgrading to EE
for me.

As soon as an alternative (open source, self hosted, free) comes around that
does have this built-in, i will be tempted to try it. (and of course on
success i will move away from gitlab).

But for now, gitlab (CE) works best for me, self hosted.

~~~
jobvandervoort
We do our best to make CE and EE excellent, where the features that land in EE
are mostly interesting for larger teams. For every feature that we don't bring
to CE, this is always a hard decision.

We wrote about this here: [https://about.gitlab.com/2016/01/11/being-a-good-
open-source...](https://about.gitlab.com/2016/01/11/being-a-good-open-source-
steward/)

~~~
throwanem
I'd love to see an a la carte licensing option, where an organization could
start with stock CE and license just the features they need. I realize that'd
be a bear to implement, though.

------
swehner
Happy with gitolite. It's just fine, no need for a web interface.

------
EugeneOZ
Their UI is too slow (as many other Ruby web apps).

~~~
sytse
If you're talking about GitLab.com, this is due to other issue
[https://gitlab.com/gitlab-
com/infrastructure/issues/59](https://gitlab.com/gitlab-
com/infrastructure/issues/59)

If you're talking about a self hosted instance, we think it is OK right now
and frontend code will get better now that we adopted
[https://vuejs.org/](https://vuejs.org/)

------
ksec
Small nit pick, why DO and not Linode? Faster CPU, more RAM and Bandwidth,
cheaper as well.

~~~
ksec
Not sure why the downvote, the article keeps bagging about saving cost, when
Linode would have been a much better fit and cheaper.

This isn't another ads or trolls. It is similar to AWS topic and recommending
GCP, or Microsft Azure, all three are classed as similar with different
tradeoff. So is Linode and DO. I do not think there are any other VPS provider
then are in their class mindset wise.

------
AWildDHHAppears
Interesting. For projects that don't need a "community" we've been using
Amazon CodeCommit.

We don't like to use Github anymore because of the politics there. Example: We
had a project involving software filters that included this sentence in the
description:

> Phase is related to time, but a pure time delay does not involve any phase
> shift. A pure time delay or "group delay" is constant with frequency. Phase
> shift varies with frequency and can advance or retard as the frequency
> changes.

We got a note from a woman who works at github who was apparently scanning
open source projects for "offensive" words. Our project was flagged for the
use of the word "retard".

We removed our project and never used github again.

~~~
matthewmacleod
_We removed our project and never used github again._

That seems like a totally disproportionate approach versus responding with a
polite 'this is a legitimate use of the word, thanks' message.

~~~
pille
Maybe she actually could've read the text and figured it out herself before
sending out the note?

Just firing off a warning based on a simple text match seems high-handed
and/or incompetent enough to consider leaving.

~~~
cloverich
Just to be clear, you're saying: "If large company x hires a single
incompetent person, that is a good reason to never deal with said company
again." I think that's the parents interpretation of OP and hence the "seems
like a disproportionate response." (I agree it was absurd to flag the
content).

~~~
pille
That's oversimplification. Even if it is just her own personal incompetence,
if GitHub just hired her _and_ let her loose as some kind of independent repo
ombudsman to scold users, then yeah, that's a terrible management decision
that warrants reconsidering your relationship with them.

~~~
squeaky-clean
We don't even know the whole story. The "woman" who sent the note is most
likely just be an automated script.

~~~
alexbanks
The point is the same though. Resting a project's livelihood on a company that
employed obviously incompetent process/humans/scripts is a risky move, and
removing that livelihood from that company makes total sense.

~~~
squeaky-clean
It doesn't sound incompetent to me, there will always be false positives on
that scale. Did they remove the OP's repo, or simply send them a message? If a
legitimate email gets caught in your spam filter, do you switch email
providers? Github and their process/humans/scripts don't sound like the
incompetent ones in this scenario. I would be more concerned that my
livelihood depended on such an over reactionary company.

"Hey boss,I tried cloning the Github repo of project X, but it says it can't
be found, and I noticed our org page on Github is gone."

"Oh yeah, they sent us a message about the use of the word 'retard' in when
referring to phase shifting."

"Oh, so they deleted our organization?"

"No."

"Oh? Well why can't I view it, weren't the projects public? What did you say
to them?"

"I didn't say anything, I moved us to a different host."

~~~
alexbanks
You're injecting a lot of assumptions into your narrative.

My point is simply: if Github is flagging content based on perceived personal
morals (not ever being allowed to use the word "retard," even in legitimate
contexts), some choose not to associate their work with them.

~~~
rawland
And their bots hide "your profile from the public", when you are hit:

[https://pbs.twimg.com/media/CpGcXmQXEAAyJU4.jpg:large](https://pbs.twimg.com/media/CpGcXmQXEAAyJU4.jpg:large)

------
hochchristoph
Original post:
[https://news.ycombinator.com/item?id=12224723](https://news.ycombinator.com/item?id=12224723)

------
gnu8
Earlier this week I had a family member get spooked by a web site with a fake
blue screen tech support scam, the one where they tell you your computer has
dire issues and you must pay them $300 to fix it. The page was taken down as
of yesterday, but what is Gitlab doing to address this type of abuse in
general?

~~~
coldpie
You seem to have left out some context. What does this have to do with Gitlab?

~~~
gnu8
Hosted by Gitlab.

~~~
sytse
If someone is abusing GitLab please use the 'i' on the user profile to report
them.

------
_pmf_
They can argue rationally all they like; GitHub is the Oracle of VC hosting
... nobody will get fired for choosing GitHub.

~~~
pluma
So far every early stage startup I've seen was using GitLab unless they only
have open source / public projects and can use GitHub for free or need GitHub
because of the community (it's still easier to get traction on GH as an open
source project because so many developers already have a GH account).

GitLab has seen steady growth for years and has recently been gaining an
increasing level of attention (in part because of the pricing changes and
dodgy politics at GitHub). It's here to stay.

I hope GitLab.com will become more performant and stable. I would love to see
GitHub for open source be replaced with a company actually built around open
source rather than proprietary tech and catchy marketing.

