Re: Report: removing the inconsistencies in our CVS->git conversion

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>, pgsql-hackers@postgresql.org, Michael Haggerty <mhagger@alum.mit.edu>, Max Bowsher <maxb@f2s.com>
Date: 2010-09-13T17:31:59Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Applied patch to jdbc from Kim Ho at RedHat, fixing improper handling of empty queries under the V3 protocol

  2. Applied patch for jdbc from Kim Ho at RedHat to more correctly deal with boolean values

  3. Applied patch from Oliver Jowett to improve a buffer sizing.

  4. Code cleanup inspired by recent resname bug report (doesn't fix the bug

  5. Pass shared memory id and socket descriptor number on command line for

  6. Second try at avoiding conflicts with system isblank().

  7. Applied Kris Jurkas patch to fix rollback and SQLException

  8. applied patch from Oliver Jowett

  9. Make the world at least somewhat safe for zero-column tables, and

  10. Add mention of -F not supported by pg_dumpall. Code already disallows it.

  11. Two versions of QueryExecutor, currently only version 2 works 100%

  12. modifications to the way the protocol is handled to be consistent with

  13. Part of Anders Bengtsson's patch to clean up Connection.java

  14. Applied Anders patch to move the startup code out of Connection into StartupPacket

  15. >Added ServerEncoding

  16. > I am backing out this patch. Please resubmit with this corrected. Thanks.

  17. Fixes bug where query hangs if there is an error in the query, went back to

  18. Backpatch array I/O code and documentation fixes, also array slice

  19. fixed QueryExecuter to deal with multiple errors

  20. Repair bad calculation in timetz_izone() which gave erroneous results.

  21. backed out changes for cancel, no need to look for two 'Z' responses

  22. Patch by Nicolas Verger to correctly propogate SQLWarning to the Statement and ResultSet

  23. fixed cancel query bug introduced by patch

  24. Autoconf for jdbc debug changes.

  25. Updated the list of encodings supported to match what the backend now supports

  26. Added some additional comments in the code

  27. Update TODO list.

  28. Remove ConnectionHook.java. No longer used, bad code.

  29. The attached patch removes some old and dead code (and some related

  30. First batch of the tools merged in...

  31. This patch fixes an arrayindexoutofbounds exception that was just

  32. Add ./include/config.h.win32 to RELEASE update list.

I wrote:
> I'm a bit disappointed by the fact that we get either of these.  I had
> gathered from Max's comments that the dead-revision-at-the-base-of-the-
> branch trick is considered standard in newer CVS versions, and so I'd
> hoped that cvs2git would understand the construct and not generate
> either of these commits.  Possibly the hacked-up revisions I inserted
> are enough different from the regular kind to confuse it.

Hah: a bit of digging in the cvs2svn sources found this:

  def _is_unneeded_initial_branch_delete(self, lod_items, metadata_db):
    """Return True iff the initial revision in LOD_ITEMS can be deleted."""

    if not lod_items.cvs_revisions:
      return False

    cvs_revision = lod_items.cvs_revisions[0]

    if cvs_revision.ntdbr:
      return False

    if not isinstance(cvs_revision, CVSRevisionAbsent):
      return False

    if cvs_revision.branch_ids:
      return False

    log_msg = metadata_db[cvs_revision.metadata_id].log_msg
    return bool(re.match(
        r'file .* was added on branch .* on '
        r'\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2}( [\+\-]\d{4})?'
        '\n$',
        log_msg,
        ))

So it looks like I have to make the dead revisions' log messages match
that regexp.  Off to make another try.

			regards, tom lane