code logs -> 2021 -> Fri, 24 Sep 2021< code.20210923.log - code.20210925.log >
--- Log opened Fri Sep 24 00:00:43 2021
00:35 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
00:35 VirusJTG [VirusJTG@Nightstar-b00.oti.104.208.IP] has joined #code
00:35 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
03:51
< Alek>
I, too, have encountered losing older snapshots after an OS upgrade.
03:51
< Alek>
Windows, but still.
04:28 Degi [Degi@Nightstar-n87t8b.dyn.telefonica.de] has quit [Operation timed out]
04:29 Degi [Degi@Nightstar-qs2gt6.pool.telefonica.de] has joined #code
05:25 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has joined #code
05:25 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
05:38 VirusJTG [VirusJTG@Nightstar-b00.oti.104.208.IP] has quit [Connection closed]
05:39 VirusJTG [VirusJTG@Nightstar-b00.oti.104.208.IP] has joined #code
05:39 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
05:48 Kindamoody[zZz] [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Connection reset by peer]
05:48 Kindamoody[zZz] [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
05:48 mode/#code [+o Kindamoody[zZz]] by ChanServ
05:48 macdjord|slep [macdjord@Nightstar-re5.7if.45.45.IP] has joined #code
05:48 mode/#code [+o macdjord|slep] by ChanServ
05:48 JustLurk [justbob@ServerAdministrator.Nightstar.Net] has joined #code
05:48 JustBob [justbob@Nightstar.Customer.Dissatisfaction.Administrator] has quit [NickServ (RECOVER command used by JustLurk)]
05:48 JustLurk is now known as JustBob
05:48 mode/#code [+o JustBob] by ChanServ
05:49 celticminstrel [celticminst@Nightstar-kqocer.dsl.bell.ca] has quit [Connection reset by peer]
05:49 KiMo|autorejoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
05:49 ErikMesoy1 [Bruker@Nightstar-t4q.qfg.9.46.IP] has joined #code
05:49 celticminstrel [celticminst@Nightstar-kqocer.dsl.bell.ca] has joined #code
05:49 mode/#code [+o celticminstrel] by ChanServ
05:49 ErikMesoy [Bruker@Nightstar-9hbv99.bb.online.no] has quit [Ping timeout: 121 seconds]
05:50 Kindamoody[zZz] [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Operation timed out]
05:50 mac [macdjord@Nightstar-re5.7if.45.45.IP] has quit [Ping timeout: 121 seconds]
06:38 ErikMesoy1 is now known as ErikMesoy
06:38 mode/#code [+o ErikMesoy] by ChanServ
12:21 Emmy [Emmy@Nightstar-l49opt.fixed.kpn.net] has joined #code
12:56 catalyst_ [catalyst@Nightstar-u5d9he.dab.02.net] has joined #code
12:59 catalyst [catalyst@Nightstar-ejd4sd.cable.virginm.net] has quit [Ping timeout: 121 seconds]
13:43 catalyst [catalyst@Nightstar-rk53c2.dab.02.net] has joined #code
13:46 catalyst_ [catalyst@Nightstar-u5d9he.dab.02.net] has quit [Connection closed]
13:47 catalys23 [catalyst@Nightstar-ejd4sd.cable.virginm.net] has joined #code
13:50 catalyst [catalyst@Nightstar-rk53c2.dab.02.net] has quit [Connection reset by peer]
14:57 catalys23 [catalyst@Nightstar-ejd4sd.cable.virginm.net] has quit [[NS] Quit: -a- Connection Timed Out]
14:58 catalyst [catalyst@Nightstar-ejd4sd.cable.virginm.net] has joined #code
15:05 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:05 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:30 macdjord|slep is now known as macdjord
15:41 mac [macdjord@Nightstar-re5.7if.45.45.IP] has joined #code
15:41 mode/#code [+o mac] by ChanServ
15:42 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
15:43 macdjord [macdjord@Nightstar-re5.7if.45.45.IP] has quit [Ping timeout: 121 seconds]
15:44 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
15:44 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
16:58 catalyst [catalyst@Nightstar-ejd4sd.cable.virginm.net] has quit [Connection closed]
16:58 catalyst [catalyst@Nightstar-ejd4sd.cable.virginm.net] has joined #code
17:10 macdjord|slep [macdjord@Nightstar-re5.7if.45.45.IP] has joined #code
17:10 mode/#code [+o macdjord|slep] by ChanServ
17:13 mac [macdjord@Nightstar-re5.7if.45.45.IP] has quit [Ping timeout: 121 seconds]
17:23 macdjord|slep is now known as macdjord
17:37 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
17:50 KiMo|autorejoin is now known as Kindamoody
17:50 mode/#code [+o Kindamoody] by ChanServ
18:21 catalyst_ [catalyst@Nightstar-rk53c2.dab.02.net] has joined #code
18:23 catalyst [catalyst@Nightstar-ejd4sd.cable.virginm.net] has quit [Ping timeout: 121 seconds]
18:39 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
18:40 catalys3 [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
18:42 catalyst_ [catalyst@Nightstar-rk53c2.dab.02.net] has quit [Connection reset by peer]
18:43 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
18:55 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
18:57 catalys3 [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
19:28 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:29 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
19:30 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:31 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Connection reset by peer]
19:32 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:32 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Connection closed]
19:34 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Connection reset by peer]
19:34 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:34 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Connection reset by peer]
19:35 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
19:35 mode/#code [+o Kindamoody] by ChanServ
19:36 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:38 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
19:43 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:44 catalys25 [catalyst@Nightstar-rk53c2.dab.02.net] has joined #code
19:46 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
19:47 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
19:48 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:48 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Connection closed]
19:48 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:49 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Connection reset by peer]
19:50 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
19:51 catalys25 [catalyst@Nightstar-rk53c2.dab.02.net] has quit [Ping timeout: 121 seconds]
20:24 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
20:25 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
20:25 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [[NS] Quit: Rebooting this stupid laptop!]
20:54 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
20:55 mode/#code [+o Kimo|autojoin] by ChanServ
20:55 Kimo|autojoin is now known as Kindamoody
20:59 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
21:51 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
22:08 catalyst_ [catalyst@Nightstar-f3j.rlh.148.95.IP] has joined #code
22:11 catalyst [catalyst@Nightstar-f3j.rlh.148.95.IP] has quit [Ping timeout: 121 seconds]
22:41
<&McMartin>
tee hee
22:41
<&McMartin>
"If you just push, pull and make basic commits, [Git is] a reasonably simple, fool proof system.
22:41
<&McMartin>
If you start creating branch systems or try to mash your commits to make your 27 incremental commits into a single beautiful one, you rapidly begin shooting yourself in the foot in a way that quickly requires An Expert to fix.
22:41
<&McMartin>
Git is a tool to punish people who think they are smart."
22:48
<@Tamber>
oof, yeah.
22:49
<@Tamber>
Though, that said, ime: Oh my god, if you're working with multiple people on a project, please don't work directly on master unless you're incredibly careful, because it'll make a mess.
22:49
<@Tamber>
(spoiler: you won't quite be careful enough. It will make a mess.)
22:50
<@Tamber>
(This brought to you by a friend learning git by jumping straight in on a large codebase, and working on master, then getting frustrated over "why am I getting commits with 0 files changed?!" and stuff like that.)
22:54
<@Tamber>
(Warc would like to add: "Wings of wax" to that.)
23:07
<&McMartin>
If you have multiple people working on the same branch, git will start improvising a branch system for you, so that gets you into Sad Times, albeit often not the kind that require experts to unfuck
23:07
<&McMartin>
If you can get An Expert to set up branch automation, say, by way of Your Friends At Gitlab, then you get the best of both worlds
23:07
<@Tamber>
Yeah, it was just messy, not a disaster.
23:08
<&McMartin>
Which is to say a marginal improvement over Subversion, which Git fans get very mad when you point out because they hate Subversion with a passion for not being as bad as they tell themselves it was
23:08
<&McMartin>
(CVS, however, was actually even worse than people tell themselves it was~0
23:09
<&McMartin>
I've seen exactly one major project that was able to use CVS acceptably, and the way they did it was essentially by semi-manually defining a tag for each logical changeset.
23:09
<&McMartin>
Because CVS, as it happens, has no notion of "a changeset"; each file is versioned individually, and the version numbers are the number of times THAT FILE had been changed.
23:09
<@Tamber>
oh, lovely
23:10
<&McMartin>
The ancestral line of revision control systems, from RCS/SCCS through CVS through SVN through the distributed systems like Git and Mercurial -- is really interesting because there are these sharp generational splits as new and genuinely fundamental concepts are introduced
23:11
<&McMartin>
CVS's new fundamental concept was "it's not necessary to lock *every file in the entire repo* while a person is *making edits*; we only have to lock at the points where patches are applied, and if they don't conflict then that's even less constraint needed"
23:11
<&McMartin>
The C in "CVS" is for "concurrent" and it means it
23:11
<@Tamber>
*nods*
23:12
<&McMartin>
You can -- and in many contexts I would -- claim that CVS was a step backwards for many teams from the hard-locking systems of its previous generation
23:12
<&McMartin>
But you don't get to something like SVN or Perforce without something like CVS as a waypoint.
23:13
<@Tamber>
can't have the journey, without all the steps along the way, or something like that.
23:13
<@Tamber>
Even if some of the steps were into muddy puddles.
23:13
<&McMartin>
It served me well enough; it hurt me on multiple occasions; I will never use it again by choice; but I respect it for what it did and what it was.
23:15
<@Tamber>
git was the first vcs I ever actually used, tbh, so I don't really have any other point of reference. I think I did occasionally grab some code via svn checkout, but it was "copy the magic incantation, do that"
23:15
<&McMartin>
(I used CVS from about 1997 through about 2004)
23:16
<&McMartin>
svn is a case of many incremental improvements that don't amount to a generational shift
23:18
<&ToxicFrog>
I know my dad used RCS and CVS; my first version control system was p4, followed by svn, but the first one I actually used willingly was git
23:19
<&ToxicFrog>
Largely because it was way easier to set up (no separate server install needed) and, unlike svn and p4, was not constantly teetering on the brink of obliterating all of your changes every time you needed to do merge resolution
23:21
<&McMartin>
I get the impression that p4 basically pioneered branching and svn spent a long time trying to catch up
23:21
<&McMartin>
And this was still very fraught in svn up through at least 2010, though this is also a place where it has consistently gotten better while people weren't looking at it.
23:22
<&ToxicFrog>
My first p4 experience was at a company where branches were used for something, but not something relevant to what my team was working on, and I never really understood how they worked there
23:23
<&ToxicFrog>
Honestly I don't think I ever got a decent handle on how they work in SVN either
23:23
<&McMartin>
Yeah, the part that I think gets ignored/swept aside in discussions is that in the early aughts branching and merging wasn't really a solved problem
23:24
<&McMartin>
*somthing* about the way DVCSes represent branches seems to make branch merge conflicts much rarer but I have never quite sorted out why that is, much less determinde some minimal example for showing off such a fix
23:25
<&ToxicFrog>
(IIRC I started using git sometime around 2007-2008)
23:27
<&ToxicFrog>
For me the win was not so much "merge conflicts are rarer" as "if conflict resolution goes badly you can easily roll back to a known good state and try again from the top", whereas in both svn and p4, at least at that time, if the merge conflict goes badly and you haven't independently backed up your working copy you are fucked
23:28
<&McMartin>
Now, when you say "merge conflict" do you mean "actually merging two actually branches", or do you mean "pulling from the server with uncommitted changes in your working copy"?
23:28
<&ToxicFrog>
The latter
23:28
<&ToxicFrog>
Which is a really common operation, because it won't let you commit until you do that
23:29
<&McMartin>
OK. For clarity, my discussion above is talking about the former; it's not a *fundamental* shift, but one of Git's incremental benefits is essentially "you get the ability to locally cache changes for free"
23:29
<&McMartin>
With SVN you need to manually svn diff > ohshit.diff before attempting a resolution.
23:30
<&McMartin>
With git this is unnecessary because a local commit *is such an ohshit.diff intrinsically*
23:30
<&McMartin>
But "local commit" is the generation shift. So all DVCSes will have this for free, and centralized VCSes would need to automate a similar process for safety
23:30
<&McMartin>
And those that did, did so very late in the game.
23:31
<&ToxicFrog>
I assumed that centralized VCSes would have adopted that feature at some point, yeah, if for no other reason than that once someone else has the idea the benefits are obvious even for centralized use
23:31
<&McMartin>
Unless I'm misreading you, a full backup of your checkout directory in SVN would not be required for safety, because reconstructing your base revision and reapplying the diff will do the trick.
23:31
<&ToxicFrog>
I spoke imprecisely; that would indeed be sufficient
23:32
<&McMartin>
OK
23:32
<&ToxicFrog>
Perhaps "backing up your changes" would be more appropriate
23:32
<&McMartin>
(Subversion has a longstanding problem where people found nevermind-I-fixed-it terrible solutions and then concluded that this was both the intended behavior and the best workflow you could possibly achieve with it)
23:33
<&McMartin>
(This also happens regularly with git, but it doesn't seem to define the experience of talking about it as much)
23:33
<&McMartin>
(In other news, git restore actually exists now and resolves a pain point I had for years early on)
23:34
<&ToxicFrog>
Oh hey, it's one of the like six different things `git checkout` does but given its own command and less bad UX
23:34
<&ToxicFrog>
neat
23:34
<&McMartin>
Yeah, that~
23:35
<&McMartin>
It actually recursively processes directories by default, even!
23:36
<&McMartin>
After years of saying git checkout is the equivalent of svn revert (not to be confused with svn checkout, which is git clone), and that this was proof that subversion was bad
23:36
<&McMartin>
git restore is actually at par with svn revert, because `git checkout -- pathname` was *vastly inferior* to svn revert
23:38
<&ToxicFrog>
Oh?
23:39
<&ToxicFrog>
> and that this was proof that subversion was bad
23:39
<&ToxicFrog>
I mean, I have always taken it as proof that git, as much as I like it, has a UI designed by horrible gremlins
23:39
<&McMartin>
So, the polite version here is "Stockholm Syndrome" with a side of "anything that isn't like whatever I learned first is automatically bad, and is good to the degree that it behaves like whatever I learned first"
23:40
<&McMartin>
But the Git designers also early on explicitly stated that the only things to learn from SVN and CVS were that their existence had no value but as a terrible warning to others.
23:41
<&McMartin>
I have always suspected that the destructive terminology conflict between svn and git commands was intentional as a way of lashing out at SVN
23:42
<&McMartin>
But more seriously, I feel like they missed some important bits of the protocol when ignoring their predecessors
23:42
<&McMartin>
Like svn revert accepting directories with an "are you sure" option to recurse
23:48
<&McMartin>
I think the Git Expert (tm) opinion before was "you don't need svn revert because git reset --hard HEAD does what you want"
23:48
<&McMartin>
Except that's only true if you're at repo root
23:56
<&ToxicFrog>
Right, but I mean, what's the key difference between 'git checkout -- some/dir' and 'svn revert some/dir' here
23:56
<&McMartin>
My distinct recollection is that for some time the first there was a no-op.
23:56
<&McMartin>
"That's not a path git tracks"
23:56
<&McMartin>
Because git only knows about files and directories are simply implied by files
--- Log closed Sat Sep 25 00:00:44 2021
code logs -> 2021 -> Fri, 24 Sep 2021< code.20210923.log - code.20210925.log >

[ Latest log file ]