Revision Control Systems, Gits

(Andy Wootton) #1

I decided to start doing some coding. I’ve been writing on and they offer the option to use GitHub to save your book ‘source’, so that seemed like the place to start. I set up an account then realised I had to pay for a 'non-public account. I’m not quite ready for people to see my writing or code naked, though I like the idea of making some stuff available Free there later.

I’m now andywootton on GitHub and Bitbucket which allows up to 5 developers to work on a private project, free and also supports Git. As Bitbucket is from Atlassian, who don’t seem to have done too badly out of selling software based on Open-Source projects, my conscience remains clear. I was also joking about bits overflowing into bit-buckets in the 80s, so I claim prior art.

Are these sensible routes to a service-based SCCS or should I waste more time on something else to put off starting? :smile:

I’m using Linux at the fist/screen interface end. I assume it works about the same as Code Management System under DECwindows?

(Stuart Langridge) #2

Ya. Github is better if you want your thing to be public, because it’s where the zeitgeist is. If you want private repositories and don’t wanna pay Github money, then Bitbucket are fine.

(Daniel Hollands) #3

I’ve been a fan of BitBucket for a number of years now, and find they offer an excellent service. Although I use GitHub for all my social coding bits (such as the Birmingham.IO stuff), but all my own, private projects, are hosted on BitBucket.

(Andy Henson) #4

Another option is Gitlab - which is mostly an open source Github clone so you can host it yourself, or they offer free hosting too.

As a small company with lots of client accounts, we were using Github but it was getting expensive for all the private repositories so we’ve switched to a private Gitlab installation recently. We started out hosting it ourselves on a VPS but then I found GitHost which does the hosting and keeps it up to date as the new versions are released. It’s a phenomenal $7 a month - which is cheaper than the 1GB Digital Ocean we were running it ourselves on which we also had to maintain.

In case you haven’t guessed - I’m a big fan!

(Daniel Hollands) #5

@elaptics How does the functionality of GitLab compare with GitHub and BitBucket?

IMO GitHub works far better than BitBucket, and offers a lot more features, but BitBucket works well enough (at least for my needs) that I can’t complain. I have no idea how BitBucket works in relation to teams, pull requests, etc, but most of my own projects are lone developer things.

(Stuart Langridge) #6

You may find useful, performed by yours truly and interviewing the head of Gitlab :slight_smile:

(Andy Henson) #7

I’ve not played with BitBucket that much but Gitlab compares favourably to Github. Github is definitely better overall - it’s faster, at least compared to our hosted instance. But it’s not that much slower and Gitlab has a few nice touches in areas, plus we have complete control over it with no limits on private project numbers or users or anything. With our hosted instance, it means we have our own which looks nice :smile:

(Andy Wootton) #8

Thanks, I was aware of self-hosted options but I ran high-availability servers for 20 years. It’s no longer something I want to do for fun.

(Chris Vickers) #9

I have a large range of services that i current use and they are as follows:
GIT - Bitbucket
GIT GUI - Sourcetree (No matter what anyone says there is a reason GUI’s are invented)
GIT Merger - DiffMerge
Hosting - Webfaction
Continuous deployment - FTPloy

The most useful of these is webfaction. Hosting for as many apps as i really need and if i want to expand there is always AWS or Rackspace but you have to configure them yourself. Prefer “one-click and we are ready to go” services.

With all of these in mind Bitbucket is the best option as i can host publicly or privately and share with whoever i want. Souretree integrates very nicely when cloning repos as well .

(Andy Wootton) #10

Thanks @CodingRebel, an interesting list. Despite “choosing Linux”, I’m no fan of the Linux CLI. I’ve always struggled with the lack of syntactic consistency in Unix shells but sadly Sourcetree is only available for Mac & Windows. It will probably “do me good” to learn git the hard way first before I hunt for the best GnUI.

I’ve noticed:
Gnome giggle
gitk in Tcl/Tk

(Alastair McGowan-Douglas) #11

There’s nothing special about github except that it has an API key auth system because it’s a remote server. You should be able to point it at a local git repository to store your changes, and then later push this to github when you’re happy with it going public.

I don’t know any decent start-here guides to dealing with the distributed part of git, but if I can’t find one then I’ll just write one, if that would help.

Regards the CLI thing, apart from the fact it is the de facto way of using Linux, it’s actually been shown that people using the CLI have a far greater understanding of the software than people using a GUI. This is because a CLI doesn’t give you hints about what you can and cannot do as you pass through the process; a GUI is always giving visual feedback by juxtaposing windows and greying out buttons. As a result, CLI users internalise knowledge by necessity, whereas GUI users let the GUI hold the knowledge.

At my previous place of work it was not long after introducing git that everyone in the company - including the frontenders, who some people thought were not going to be able to keep up - was using git from the command line with a reasonable level of fluency.

(Andy Wootton) #12

There’s no shortage of git guidance @Altreus, thanks. My concern was finding the right service and licensing conditions, not how to use it. I’m using Bitbucket when I don’t want to publish free.

I don’t agree that the CLI is any longer the de facto way to use Linux. That’s Android apps on mobile devices. Even on GNU/Linux, I suspect most people use a GUI most of the time, as they do on Apple’s FreeBSD.

I used the CLI of George 3, TOPS 20, OpenVMS and VM/CMS. After those, I didn’t want to go back to something as crude as MS-DOS but I was really disappointed in Unix/Linux. It’s the ‘designed by committee’ thing and the daft utility names that have nothing to do with function.

It isn’t that use of the CLI gives greater understanding but that the people who want to understand are the only ones willing to put up with the pain. GUIs are tolerant of ignorance but they don’t cause it. Is knowledge of the correctly formatted incantations what really matters?

(Daniel Hollands) #13

While this is true, is it not that most people use a remote service (GitHub, BitBucket, GitLab, et al) so it can act as a back-up, as well as the other benefits afforded (such as being able to work on it from multiple machines, etc).

I’d say this is the real question which is being asked.

(Andy Wootton) #14

I’m not sure I knew what I was looking for when I started my search. My previous experience of what I know as ‘configuration management’ was with CMS, a DEC clone of SCCS from “snake-oil” Unix, I think; so my mental model was ‘book object out of server repository/make change/book back in’. I see now that things have moved on.

I’ve seen a suggestion to use git to a private repo on Dropbox but some commentators had reservations about the safety of that.

(Andy Wootton) #15

Agile Staffordshire is hosting a meeting at Staffs Uni, Stafford campus tonight on Command Line Git. It’s on Meetup.

(Andy Wootton) #16

I’d like to point out that I wasn’t the git being introduced

(Richard Cunningham) #17

I typically use a combination of these (usually all of them):

  • clone to BitBucket (with a cron job)
  • clone to Dropbox (also with a cron job)
  • backup of the machine where the code is (Crashplan [remote] + TimeMachine [local])

and additionally, depending on what I’m doing:

  • push the entire repo to remote server on deploy
  • RAID1 on the system where one of the copies is

My view is that github is good for colloration, though it’s of limited added value when working on your own.

(Andy Wootton) #18

Interesting @rythie. I’ve seen people suggesting that Git on DropBox is a bad idea. My preference these days is to keep a master in the Cloud and backup to wherever ‘local’ is. But so far, that hasn’t included code.

(Richard Cunningham) #19

When they say that, it’s because they are working on the one in the Dropbox directory. What I do, is store it elsewhere and make a nightly copy into Dropbox - I use git clone though you could use rsync to ensure uncommited files are copied too (If you don’t have another file level backup).

(Andy Wootton) #20

I’ve been back on LeanPub for the first time in a while.
(I’ve been using ReText on Dropbox for drafting)

They appear to have added support for BitBucket.

Markdown files can keep the standard .md file type instead of .txt. I think they probably always could but I am a slavish follower of any arbitrary rules that I happen to remember.