Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Shaggar
Apr 26, 2006

pangstrom posted:

Is there a better alternative to git?

SVN

Adbot
ADBOT LOVES YOU

Mao Zedong Thot
Oct 16, 2008



shaggar we need to workshop your character, the svn thing just isnt believable by the audience

VikingofRock
Aug 24, 2008




git is surprisingly good for being a piece of software that was just designed as "whatever worked for linus" although the command line interface is pretty unintuitive and inconsistent. IMO it is pretty good for enabling collaborative work, being flexible enough to adapt to a lot of workflows, and letting you undo your mistakes. I've never made a mistake so bad that it led to me losing committed work, and boy have I tried.

I'm interested to see where pijul goes

HoboMan
Nov 4, 2010

i actually kinda like tfvc, and it's the microsoft solution. i am always surprised shagger doesn't go with this

MononcQc
May 29, 2007

it is worth using git just to avoid arguing with people who want you to use git no matter what

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

i've heard both mercurial and fossil being described as superior to git, but since git is more 'slightly awkward' than 'actively bad' and since there's a LOT of things you may want your vcs to interact with, using the same toy that everybody else is already playing with is generally the correct choice unless it's just for personal recreation

the same reasoning also applies to:
- rkt vs docker
- bsd vs linux
- toml vs yaml
- 7z vs gzip
- gina, the queen of backpage vs your mom

Notorious b.s.d.
Jan 25, 2003

by Reene

MononcQc posted:

it is worth using git just to avoid arguing with people who want you to use git no matter what

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
dvcses are often overkill for day-to-day use but when you need the functionality they’re great, and they encourage using saner branching/development models in the first place. also they tend to handle merges a lot better than non-d vc

if you’re using dvcs you might as well use git, use a gui if you’re (rightly) afraid of the lovely command line interface

Notorious b.s.d.
Jan 25, 2003

by Reene

NihilCredo posted:

i've heard both mercurial and fossil being described as superior to git, but since git is more 'slightly awkward' than 'actively bad' and since there's a LOT of things you may want your vcs to interact with, using the same toy that everybody else is already playing with is generally the correct choice unless it's just for personal recreation

the same reasoning also applies to:
- rkt vs docker
- bsd vs linux
- toml vs yaml
- 7z vs gzip
- gina, the queen of backpage vs your mom

as far as technical capabilities go, there is no difference whatsoever between hg and git. it's just that the git "porcelain," the way that the user interacts with it, sucks donkey dick.

git's user interface is actively hostile

(i don't think it's an accident that they used a shitter as a metaphor when describing the interface between ui and backend!)

anthonypants
May 6, 2007

by Nyc_Tattoo
Dinosaur Gum
i can't tell if this post is pro-strong typing or anti-strong typing

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender
facebook doesn't even expose much Mercurial to the users. Since they grew up with SVN, Git and Mercurial repos and didn't want everyone to have to learn the vagaries of each VCS, they wrote a meta-VCS wrapper tool that detects the underlying repo type and just Does The Right Thing. Which is fine 99% of the time because most people only ever do a small handful of operations. It also helps that they do Trunk-based Development, so merge issues are almost non-existent.

I'd like to see Google's Piper VCS, sounds pretty awesome except that CitC implies you have to be net-connected to do any development.

Shaggar
Apr 26, 2006

HoboMan posted:

i actually kinda like tfvc, and it's the microsoft solution. i am always surprised shagger doesn't go with this

I do use tfvc and it sucks cause it has really stupid poo poo like workspaces and locks

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

anthonypants posted:

i can't tell if this post is pro-strong typing or anti-strong typing

cast it to each one and catch the exception

anthonypants
May 6, 2007

by Nyc_Tattoo
Dinosaur Gum

NihilCredo posted:

cast it to each one and catch the exception
:pusheen:

tef
May 30, 2004

-> some l-system crap ->

cinci zoo sniper posted:

ty, this worked with minor alterations

:hattip:

redleader
Aug 18, 2005

Engage according to operational parameters
knowing how my work operates, we're probably going to migrate from svn to hg. i'm not surprised since any time there are options for picking tech, they pick the nichest one

tef
May 30, 2004

-> some l-system crap ->
hg makes a lot of sense if you've already been using svn

tef
May 30, 2004

-> some l-system crap ->
git makes a lot of sense, well, not the tool or interface, but the network effects do

Sapozhnik
Jan 2, 2005

Nap Ghost

minato posted:

I'd like to see Google's Piper VCS, sounds pretty awesome except that CitC implies you have to be net-connected to do any development.

goog are so butthurt about getting owned by the chinese that google developers are now forbidden to have source code on their laptops

you have to ssh in and do all your work over ssh

gonadic io
Feb 16, 2011

>>=
https://twitter.com/mattrickard/status/941065444919840769

Sapozhnik
Jan 2, 2005

Nap Ghost
git's cli is idiosyncratic as hell but all the people complaining about it could quite easily resolve 90% of the problems with git by writing an alternative cli wrapper around libgit2. they can still use github and collaborate with existing git repositories just fine.

ci systems would continue to use whatever existing integration they use around vanilla git but when they're at the local independently owned cafe laying down some sick code on their Late 2017 Model Apple Retina MacBook Pro with Intel Iris HD Graphics(R) they could use the alternative cli

they could call it cogito or something

jesus WEP
Oct 17, 2004


the dotnet bot gets hit up all the time because its one of the top contributors to ms open source projects

tef
May 30, 2004

-> some l-system crap ->

Sapozhnik posted:

git's cli is idiosyncratic as hell but all the people complaining about it could quite easily resolve 90% of the problems with git by writing an alternative cli wrapper around libgit2. they can still use github and collaborate with existing git repositories just fine.

ci systems would continue to use whatever existing integration they use around vanilla git but when they're at the local independently owned cafe laying down some sick code on their Late 2017 Model Apple Retina MacBook Pro with Intel Iris HD Graphics(R) they could use the alternative cli

they could call it cogito or something

that's not how network effects work

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





pangstrom posted:

Is there a better alternative to git?

git has the best model by a lot, it's just it's ux that sucks. that's why git flow is so popular. it minimizes your exposure to the ux

There Will Be Penalty
May 18, 2002

Makes a great pet!

Sapozhnik posted:

git's cli is idiosyncratic as hell but all the people complaining about it could quite easily resolve 90% of the problems with git by writing an alternative cli wrapper around libgit2. they can still use github and collaborate with existing git repositories just fine.

ci systems would continue to use whatever existing integration they use around vanilla git but when they're at the local independently owned cafe laying down some sick code on their Late 2017 Model Apple Retina MacBook Pro with Intel Iris HD Graphics(R) they could use the alternative cli

they could call it cogito or something

http://gitless.com/

30 TO 50 FERAL HOG
Mar 2, 2005



lol at the guy using tfs and saying it’s not bad

workspaces are dumb af
For being a ms product the vs integration is.....not good

HoboMan
Nov 4, 2010

the gently caress are workspaces?

cinci zoo sniper
Mar 15, 2013




HoboMan posted:

the gently caress are workspaces?

like a local git branch that, rather than representing repository, represents some of its files or folders. it doesn't know how to track only changed files, and it literally stops functioning if you get into 5 digits of total number of files in a workspace, where, for example, 5 versions of a single file would count as 5 files

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

That sounds like a really insightful statement if you don't think about it at all

jesus WEP
Oct 17, 2004


the gun is the lack of type safety and it’s much easier not to aim at your foot if you just don’t have a gun

comedyblissoption
Mar 15, 2006

git makes a lot of sense if you imagine that the commits form an immutable dag*. the branches and tags are just pointers to commits in the dag

any git porcelain operation (e.g. amend) is essentially just manipulating that dag and the pointers to the dag

a good blog post explaining this:
https://blog.jayway.com/2013/03/03/git-is-a-purely-functional-data-structure/

git will probably always seem really weird or gross until you figure this out

git is the least worst vcs out of my personal experience between svn, git, and tfs

*dag is a directed acyclic graph. you can think of this as a tree data structure that can merge branches

comedyblissoption fucked around with this message at 11:40 on Dec 15, 2017

cinci zoo sniper
Mar 15, 2013




maybe it helps that git was the first vcs i learned about but i find it's core featureset to be fairly intuitive, bar some naming conventions (but im a foreigner so what do i know a bout computerglish)

redleader
Aug 18, 2005

Engage according to operational parameters

Wheany posted:

That sounds like a really insightful statement if you don't think about it at all

it's designed to make dynamic typing fans feel superior and static typing fans feel angry so

redleader
Aug 18, 2005

Engage according to operational parameters

comedyblissoption posted:

git makes a lot of sense if you imagine that the commits form an immutable dag*.

the dried, caked poo poo that builds up around a sheep's anus is called a dag. i find this an appropriate metaphor for anything git-related

Brain Candy
May 18, 2006

comedyblissoption posted:

git makes a lot of sense if you imagine that the commits form an immutable dag*. the branches and tags are just pointers to commits in the dag

sadly i agree with this. it's just that it's also the only way it makes sense

knowing this and understanding this turns your google searches from wondering wtf to do to googling how to poke the cli (or whatever) into doing what you want

cinci zoo sniper
Mar 15, 2013




honest question, what do you even do with git that is getting you into problems

comedyblissoption
Mar 15, 2006

I once helped a team where their code was mysteriously disappearing and the culprit was that they were doing merge commits where they dropped all the changes from one of the branches

jesus WEP
Oct 17, 2004


cinci zoo sniper posted:

honest question, what do you even do with git that is getting you into problems
tfw your dipshit coworker does a push -f on a branch you’re both working on

MononcQc
May 29, 2007

the best one was invariably the old default where if you git pushed something, it pushed all the local branches onto the remote ones. Someone doing a force push and not specifying which branch you were pushing could crush dozens of other branches with poo poo

Adbot
ADBOT LOVES YOU

cinci zoo sniper
Mar 15, 2013




MononcQc posted:

the best one was invariably the old default where if you git pushed something, it pushed all the local branches onto the remote ones. Someone doing a force push and not specifying which branch you were pushing could crush dozens of other branches with poo poo

ahahahaha

comedyblissoption posted:

I once helped a team where their code was mysteriously disappearing and the culprit was that they were doing merge commits where they dropped all the changes from one of the branches



St Evan Echoes posted:

tfw your dipshit coworker does a push -f on a branch you’re both working on

:rip:

  • Locked thread