POV-Ray : Newsgroups : povray.off-topic : Git tutorial : Re: Git tutorial Server Time
30 Jul 2024 06:30:25 EDT (-0400)
  Re: Git tutorial  
From: Orchid XP v8
Date: 23 Apr 2011 15:38:19
Message: <4db32aab$1@news.povray.org>
>>> So what do you mean "apply"? What happens if your WD matches the
>>> repository, then you do a fetch, then you say "record", what does
>>> Darcs do?
>>
>> Records a new patch reverting all the changes that you didn't apply,
>> presumably.
>
> That sounds really dangerous to me.

Even though it explicitly prompts you whether you want to record each of 
those changes?

>> You can't really use tags for that; you'd have to have seperate repos for
>> v1, v2 and v3. Oh, you *can* put all the patches in one repo, but it's
>> going to get messy very quickly.
>
> See, git has no trouble with that. One repo has all of every version of
> Linux since 2.6.16 or so.

But is that better?

> And a bit fragile. The idea of git is that you have a repo with all the
> history in it. You don't have to chop it into multiple repos in order to
> actually exclude some of the history from here and there.

If Darcs does have a weakness, it's that it mostly assumes that the main 
thing you want to do is perform modifications to the one single "latest 
version" of stuff. It could be made more flexible in this direction, yes.

>> You don't do a merge every time you record a change. You do a merge every
>> time somebody *else* records a change.
>
> No, you do a merge every time you want to *apply* someone else's changes
> to your working directory.

Well, yes, that's what I meant.

>> So what you're saying is, the histories in two Git repos don't
>> actually have to match, only the file contents?
>
> The histories merge if two histories bring you to the same set of
> contents.

I see. I was assuming that if two repos disagree about history, your 
computer would explode or something. So Git is actually smart enough to 
handle that?

>>>> You ask Darcs to revert change #23.
>>>
>>> And how do you do that? "darcs revert" doesn't do that. "darcs unrecord"
>>> throws the change away entirely. Obliterate deletes the patch entirely
>>> as well.
>>
>> "darcs rollback" does it though.
>
> Oh, OK. But again it makes a permanent change in the repository. I guess
> you'd have to clone the entire repository, then roll back that one patch.

I admit, I'm surprised it actually records a patch for it. I would have 
expected it to just alter the WD. But whatever. If you rollback the 
change and then get bored with it, you can then erase the rollback 
patch. [Provided you didn't give it to anyone else.]

I'm guessing this curious glitch is related to the designer's "one true 
latest version" mentallity. The whole *point* of storing history as a 
set of changes should be to make this kind of task easy.

> Might I ask, why do you care? You're talking about a VCS being a record
> of the history of changes, and your biggest complaint against git seems
> to be that it's actually recording the history of changes. Darcs seems
> to throw away useful information about the history of the changes in the
> hope that it can automatically deduce enough of the history not to break
> in the future.

This, fundamentally, seems to be what it all comes down to. You seem to 
think that this information is *useful*, whereas to me it's annoying 
clutter that I'd rather not have to waste time explicitly micro-managing.

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.