Clay Wells on 16 Nov 2017 12:43:47 -0800


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Revision Control for the Rest of Us


On 11/16/2017 02:23 PM, JP Vossen wrote:
> On 11/16/2017 10:08 AM, Rich Freeman wrote:
>> On Wed, Nov 15, 2017 at 9:16 PM, JP Vossen <jp@jpsdomain.org> wrote:
>>> And damn it, mutable
>>> history is a BUG not a feature (unless your project is at the scope and
>>> scale of the Linux kernel)!
>>>
>>
>> While accidentally mutable history is a bug, I'm not sure that it is
>> wise to leave the option closed.  I'll give some use cases:
>
> <snip>
>
> You forgot one: "oops, I just committed the super-secret
> password/private key!"  But that's really just a special case of your
> 50G example.
>
> And...yup.  In those very special and hopefully very rare cases,
> mutable history makes sense.  I *still* think it's a bug, 99.999% of
> the time.
>
I know it's not a bug. The flexibility is there for a reason. Generally
speaking, most people do not need to
worry about changing history. It's less like a chainsaw and more like
the 6th gear of a Porche.
> The solution in all of those cases is:
>     1. Dump the repo
>     2. Edit the dump to remove the Bad Thing
>     3. Import the dump
>
This is simply not true.

1. You commit a 50GB whatever a year ago and you now want to remove it..
good luck.. doesn't matter
what VCS you're using. However, I'll put money on the fact that Git will
be much better at cherry-picking
a commit out of your repo history than most/all other VCSs. Perhaps this
is just my opinion because I'm
comfortable using Git and have been for years.

2. git reset --hard HEAD~1 will remove the most recent commit.

3. You should be working in a feature branch. Branches in Git are simple
and light weight. Therefore,
if you're bad things happen then only your local branch is impacted. You
can then fix it up and merge
into master once you have everything in order. This is where mutable
history can come in handy.
So people prefer a clean and short history. Your feature branch can
include 20 commits but it can be
merge into master in such a way that it appears as one commit.

For the record, Git commits are not hashes of every previous commit.
This is simply incorrect. Someone
mistakenly said that they were in a previous post.

> Does that really, REALLY suck for all kinds of reasons?  Yup.
> So...don't commit Bad Things.
>
100% it would but that's certainly not the only option. There's a lot of
mis/non-understanding out there.

If you're elite enough to use Gentoo then by all means you should be
able to use Git without issue.

I'm not trying to be a troll. Just adding my $0.02, FWIW

Cheers,
Clay


___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug