Hi,

if switching to Git, we could seriously consider cleaning up the
repository, now it might be the last chance for quite a while.

I have collected some possibilities for improvement - some simple, some
a bit more complicated, but if found the proper commands/scripts, the
automated tasks should work without much hassle.

* Remove the three branches, they are unneeded and inconsistent. No
  content will be lost by these actions.
  - 'vim73' points to the 7.3 release, create the missing tag v7-3 instead
    (similar to the already existing v7-0 v7-1 v7-4)
  - 'vim72' points to 7.2.446
  - 'vim' only contains the file README.txt, also remove the tag 'start' then

* Add missing tags
  v7-0003
  v7-0004
  v7-0005
  v7-0006
  v7-0013
  v7-0014
  v7-0190
  v7-0215
  => But the versions vefore 7.0 are strange anyway with many commits
     with equal message.

  v7-0-076

  v7-1-083

  v7-2
  v7-2-054

  v7-3-001
  v7-3-139
  v7-3-140
  v7-3-141

  v7-4-679

* Fix wrong tags.
  - Remove the "fix" suffix, the source state in this commit fits to the
    7.2.167 patch:
      v7-2-167fix

  - Move to the correct commit:
      v7-0-225

      v7-2-080
      v7-2-082
      v7-2-168
      v7-2-176
      v7-2-232

    These tags were applied to the 7.3 branch instead of the 7.2 line.
    v7-2-433 is the last tag before 7.3 adaptions:
      v7-2-436
      v7-2-437
      v7-2-438
      v7-2-439
      v7-2-440
      v7-2-441
      v7-2-442
      v7-2-443
      v7-2-446

* Only keep 1 history root:

  This command shows there are 3 roots:

  $ git log --max-parents=0 --oneline
  137d25c Correct Japanese menus to avoid error while loading them after 
7.2.432.
  7d32e70 First step in the Vim 7.3 branch.  Changed version numbers.
  a25c048 Initial revision

  "Initial revision" is the correct root.

  This command shows two merge commits. There the branches with own root
  are merged into the main branch:

  $ git log --merges --oneline
  eb4b96f Fold Vim 7.2 default branch back to trunk to avoid two heads. (Tony 
Mechelynck)
  f97f3c9 Merged change from default branch: Correct Japanese menus.

  The trees of commits f97f3c9 and v7-2-434~2 are identical.

  -> The merge commit f97f3c9 for the Japanese menu corrections could be
     changed to an ordinary commit, getting rid of one false root commit
     137d25c.

  -> The false root commit 7d32e70, which starts the 7.2 branch, could
     be avoided by branching off from commit 6fcc06c (Updated runtime
     files.), which is the direct descendant of v7-2-433.

* Remove empty commits:
  For each HG tag ("Added tag ... for changeset ...", adding to the
  .hgtags file) there is an empty and useless commit in the git repo.


For the following actions, Bram would have to slightly adapt his
scripts/configuration to continue using the new style.
Some snippets of the update script of my old git mirror may help:
http://repo.or.cz/w/vim_mainline.git/blob/refs/heads/stuff:/update-vim.sh

* Rename tags to match the normal version notation:
  s/-/./g
  e.g. v7-4-683 -> v7.4.683

* Unify name and mail for author and commiter, see:
  $ git shortlog --email -s

  These should all be the same person for the current history.

* Replace tabs in commit messages to make "git log" indent properly.
  Example with bad indentation:

  updated for version 7.4.682
  Problem:    The search highlighting and match highlighting replaces the
          cursorline highlighting, this doesn't look good.
  Solution:   Combine the highlighting. (Yasuhiro Matsumoto)

* Format commit messages to work properly with git commands for the log summary,
  e.g. "git shortlog" or "git log --oneline". The output of these commands is 
ugly at the moment.

  That means adding a blank line after the first line and ideally using
  a descriptive one-liner for the first line. This is the format
  recommended for Git repositories.

  e.g. from this:
    Patch 7.2.446
    Problem:    Crash in GUI when closing the last window in a tabpage. 
(ryo7000)
    Solution:   Remove the tabpage from the list before freeing the window.

  to this (from vim_mainline.git):
    [7.2.446] Crash in GUI when closing the last window in a tabpage. (ryo7000)
    
    Problem:    Crash in GUI when closing the last window in a tabpage. 
(ryo7000)
    
    Solution:   Remove the tabpage from the list before freeing the window.
    
    Patch 7.2.446

  There may be better conversions without duplicating the problem
  description.

* Add the patch description for commits before 7.2.328
  Unfortunately these commit messages do not include the patch
  description, this was from the conversion to HG. Has nothing to do
  with migration to Git, but maybe the effort is worth it.


Some suggestions for development beyond:

* Apply authorship information to the commit metadata.

* Rethink versioning
  Currently every commit (patch) is being tagged, but these are no releases.


If interested in this cleanup, I and maybe others could assemble the
needed git and shell commands. Some of these tasks I consider as quite
obligatory.

Markus

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui