On Friday 21 February 2014 23:56:47 chris beck wrote:
> Let me play Devil's advocate. If the number of irregularities is so small I
> can count them on my hand, and all are agreed we can fix them easily, then
> why not just do it and then not have any errata, or ever have to equivocate
> in saying that our history is well-formed and good.

As I have said in multiple occasions before, rewriting history is a highly 
disruptive operation and should really be reserved for special situations like 
the original SVN -> Git migration.

Rewriting any past Git commit changes the SHA1 hash for that commit and every 
commit linked to it, resulting in a cascading effect spanning all history from 
that point until the tip of the branch.

Issues (1) and (3) in ESR's post [1], and both of the issues pointed out by 
AI0867 [2], are extremely minor and can be considered legitimate part of the 
repository history. The "cat $i" file diff actually existed in SVN r14541 [3] 
and r14542 [4], which is why it was carried over to the Git repository after 
conversion.

    1: https://mail.gna.org/public/wesnoth-dev/2013-04/msg00024.html
    2: https://mail.gna.org/public/wesnoth-dev/2013-04/msg00025.html
    3: http://svn.gna.org/viewcvs/wesnoth?view=revision&revision=14541
    4: http://svn.gna.org/viewcvs/wesnoth?view=revision&revision=14542

Committer identities being bogus or incomplete is a thing that has happened in 
the past, and *will* continue to happen in the present, for two reasons:

 1) People make mistakes, much like the "cat $i" commit above;
 2) We don't formally require people to make sure their Git configuration is 
    sane and their real name and email address are set correctly or are
    meaningful (some committers don't even use their real names); and
 3) We don't have a Linux-like structure where a very limited set of experts/
    module maintainers have push access and review every single incoming patch
    (even from established developers) for content and style -- that simply
    wouldn't work well for us.

So, I find it preposterous to propose to rewrite history only because people 
made such mistakes. I certainly have never been offered the option to rewrite 
our history every time I have accidentally botched a commit with typos in the 
summary, missing paths that end up becoming part of a separate commit, and so 
on.

The most important thing to keep in mind here is that rewriting history 
requires everyone afterwards to clone the repository again and export and re-
import any local branches or patches they may have had stashed. I for one 
would prefer if I didn't have to download any content larger than 500 MiB over 
mobile "broadband" if there is an alternative -- our repository is over 1.7 
GiB in size.

Renaming the repository as-is, on the other hand, would only require people to 
run a simple `git remote set-url` command at worst, taking up only a handful 
of seconds of their time.

***

So, I covered the observed standard VCS mistakes above. The only commit to my 
knowledge that constitutes an actual Git conversion bug is from point (2) in 
ESR's post, commit 97d9aefdd166ab61260cbffa63ead04651e7c844 [5], which was 
r56594 in SVN [6]. The commit message contains extraneous text, but it still 
seems a minor non-issue to me. I asked in a previous email whether anyone is 
aware of any other history problems in general, and I haven't seen a response 
yet.

    5: http://is.gd/c8trg2
    6: http://svn.gna.org/viewcvs/wesnoth?view=revision&revision=56594

Finally, rewriting history is (as is evident by now) a time-consuming and 
error-prone thing to do, especially with such a large repository as Wesnoth's, 
comprising over 10 years of history.

-- 
Regards
  Ignacio R. Morelle <shadowm>

_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to