gentrevml #2

  • //
  • guest/
  • marc_tooley/
  • util/
  • revml/
  • bin/
  • gentrevml
  • Commits
# Change User Description Committed
#2 28901 marc_tooley ""
#1 5835 marc_tooley VCP branch to prep for incoming bugfixes for the Source/svn.pm module.
//guest/perforce_software/revml/bin/gentrevml
#59 5404 Barrie Slaymaker - SVN support added
- Makefile gives clearer notices about missing optional
  prereqs.
- VCP::Filter::labelmap and VCP::Filter::map: <<skip>> replaces
  deprecated <<delete>> to be clearer that no revisions
  are deleted from either repository but some just are
  skipped and not inserted.
- VCP::Filter::map: support added for SVN-like branch labels
- VCP::Source: support added for ISO8601 timestamps
  emitted by SVN.
#58 4514 Barrie Slaymaker - VCP::Rev::earlier_ids and <release_id> added
#57 4507 Barrie Slaymaker - RevML:
    - added <action>, removed <delete>, <placeholder> and <move>
    - added <from_id> for clones (and eventually merge actions)
    - Simplified DTD (can't branch DTD based on which action
      any more)
- VCP::Source::cvs, VCP::Filter::changesets and VCP::Dest::p4
  support from_id in <action>clone</action> records
- VCP::Dest::perl_data added
- VCP::Rev::action() "branch" added, no more undefined action
  strings
- "placeholder" action removed
#56 4417 Barrie Slaymaker - Adapt to "estimated values" messages
       - Adapt to more accurate test suite
#55 4408 Barrie Slaymaker - t/91cvs2revml.t passes
#54 4126 Barrie Slaymaker - Comments with leading hyphens and embedded quotes are
  now tested for
- VCP::Dest::cvs now handles comments with embedded double
  quotes on Win32
#53 4032 Barrie Slaymaker - VCP::Dest::p4 now estimates missing metadata
#52 3993 Barrie Slaymaker - Fold in changes from clkao's SVN work
#51 3970 Barrie Slaymaker - VCP::Source handles rev queing, uses disk to reduce RAM
- Lots of other fixes
#50 3945 Barrie Slaymaker - Generate realistic VSS RevML
#49 3943 Barrie Slaymaker - RevML supports comments in placeholders
#48 3921 Barrie Slaymaker - VCP::Source::vss uses "0." and "1." prefixes on all rev_ids
  to properly handle VSS's idea of deleted files.
- VCP::Dest::vss now offers --dont-recover-deleted-files to
  allow VSS-like sources to be trasnferred more completely
#47 3801 Barrie Slaymaker - remove <branches> from DTD
       - revml.dtd is now at v0.34
#46 3800 Barrie Slaymaker - <branches> removed from all code
#45 3496 Barrie Slaymaker - VSS branching
#44 3453 Barrie Slaymaker - VCP::Source::vss now reads deleted files, etc.
- gentrevml generates more VSS-like RevML
- add t/91vss2revml.t (not complete)
#43 3430 Barrie Slaymaker - Update the XML escaping heuristic
- Add --no-encoding option to prevent base64 encoding of
  binary data (in case your data isn't all that binary)
#42 3404 Barrie Slaymaker gentrevml now generates more reasonable VSS .revml files
#41 3074 Barrie Slaymaker Fix tests (placeholders now have user_ids)
#40 2979 Barrie Slaymaker Put all 1.x, 2.x, 3.x, etc. on the main dev trunk
       (1.1.1.x, 1.1.2.x, etc. are still separate branches)
#39 2973 Barrie Slaymaker Fix handling of branched but unchanged files
#38 2972 Barrie Slaymaker Interim checkin
#37 2897 Barrie Slaymaker Fix timestamps in gentrevml
#36 2894 Barrie Slaymaker Get t/95p42cvs.t to pass
#35 2863 Barrie Slaymaker Use the absolute path to a file's directory as its
       branch_id for SCMs that branch in file path space.
#34 2859 Barrie Slaymaker Work on Source::p4 branching issues
#33 2841 John Fetkovich generate "a big file" stuff as multiple lines rather
       than a single long line so eq_or_diff's in the test suite
       won't be so frickin' ridiculous.
#32 2802 John Fetkovich Added a source_repo_id to each revision, and repo_id to each
Source and Dest.  The repo_ids include repository type
(cvs,p4,revml,vss,...) and the repo_server fields.  Changed the
$self->...->set() and $self->...->get() lines in VCP::Dest::* to
pass in a conglomerated key value, by passing in the key as an
ARRAY ref.  Also various restructuring in VCP::DB.pm,
VCP::DB_file.pm and VCP::DB_file::sdbm.pm related to this
change.
#31 2743 John Fetkovich Add fields to vcp:
         source_name,
         source_filebranch_id,
         source_branch_id,
         source_rev_id,
         source_change_id

        1. Alter revml.dtd to include the fields
        2. Alter bin/gentrevml to emit legal RevML
        3. Extend VCP::Rev to have the fields
        4. Extend VCP::{Source,Dest}::revml to read/write the fields
           (VCP::Dest::revml should die() if VCP tries to emit illegal
           RevML)
        5. Extend VCP::{Source,Dest}::{cvs,p4} to read the fields
        7. Get all tests through t/91*.t to pass
           except those that rely on ch_4 labels
#30 2323 Barrie Slaymaker tweak time values to let sort routines put things in
       the required order for the test suites.
#29 2319 Barrie Slaymaker make t/test-*.revml be consistent with cvs2p4 and p42cvs scenarios
#28 2314 Barrie Slaymaker Build, use -no-big-files.revml for test speedups
#27 2297 Barrie Slaymaker Adapt cvs, revml to a more realistic branching structure
#26 2059 Barrie Slaymaker Support for branching in p4->p4 added
#25 2051 Barrie Slaymaker Enable p4_branch_spec to be carried through revml->revml.
#24 2049 Barrie Slaymaker Get branching working in Dest::p4, clean up some tests.
#23 2042 Barrie Slaymaker Basic source::p4 branching support
#22 2026 Barrie Slaymaker VCP::8::cvs now supoprt branching
#21 2017 Barrie Slaymaker Interim checkin of id=/base_version_id for revml: and
       branch_diagram:
#20 2015 Barrie Slaymaker submit changes
#19 2009 Barrie Slaymaker lots of fixes, improve core support for branches and VCP::Source::cvs
       now supports branches.
#18 2006 Barrie Slaymaker more preparations for branching support,
       handling of cvs :foo:... CVSROOT specs,
       misc fixes, improvements
#17 1998 Barrie Slaymaker Initial, revml and core VCP support for branches
#16 1834 Barrie Slaymaker Put change numbers in VSS test revml files so ch_4 can be
       used to test incremental output.
#15 1822 Barrie Slaymaker Get all other tests passing but VSS.
 Add agvcommenttime
       sort field.
#14 1809 Barrie Slaymaker VCP::Patch should ignore lineends
#13 1757 Barrie Slaymaker Bump version number, get vss .revml files to be generated
#12 1728 Barrie Slaymaker CVS on win32, minor bugfixes
#11 1358 Barrie Slaymaker Win32 changes
#10 1055 Barrie Slaymaker add sorting, revamp test suite, misc cleanup.
 Dest/revml is
not portable off my system yet (need to release ...::Diff)
#9 701 Barrie Slaymaker Fixed VCP::Dest::p4 re-rooting problem, further t/* cleanup
#8 695 Barrie Slaymaker Cleaned up support for binary files in VCP::Dest::revml and
altered test suite to deal with it better.  Added some thoughts
to the TODO file.
#7 619 Barrie Slaymaker Avoid using p4 print -s, it puts linebreaks in every 4098
characters or so.
#6 609 Barrie Slaymaker Add a file to the test procedure that it alternately added and
deleted (file is named "readd"). Fixed all destinations to handle
that.
#5 608 Barrie Slaymaker Lots of changes to get vcp to install better, now up to 0.066.
Many thanks to Matthew Attaway for testing & suggestions.
#4 480 Barrie Slaymaker 0.06 Wed Dec 20 23:19:15 EST 2000
   - bin/vcp: Added --versions, which loads all modules and checks them
     for a $VERSION and print the results out.  This should help with
     diagnosing out-of-sync modules.
   - Added $VERSION vars to a few modules :-).  Forgot to increment any
     $VERSION strings.
   - VCP::Dest::cvs: The directory "deeply" was not being `cvs add`ed on
     paths like "a/deeply/nested/file", assuming "deeply" had no files
     in it.
   - VCP::Dest::revml: fixed a bug that was causing files with a lot of
     linefeeds to be emitted in base64 instead of deltaed.  This means
     most text files.
   - Various minor cleanups of diagnostics and error messages, including
     exposing "Can't locate Foo.pm" when a VCP::Source or VCP::Dest
     module depends on a module that's not installed, as reported by
     Jeff Anton.
#3 478 Barrie Slaymaker 0.05 Mon Dec 18 07:27:53 EST 2000
   - Use `p4 labels //...@label` command as per Rober Cowham's suggestion, with
     the '-s' flag recommended by Christopher Siewald and
     [email protected].  Though it's actually something like

       vcp: running /usr/bin/p4 -u safari -c safari -p localhost:5666 -s files
       //.../NtLkly //...@compiler_a3 //.../NtLkly //...@compiler_may3

     and so //on //for 50 parameters to get the speed up.  I use the
     //.../NtLkly "file" as //a separator between the lists of files in various
     //revisions.  Hope nobody has any files named that :-).  What I should do
     is choose a random label that doesn't occur in the labels list, I guess.
   - VCP::Source::revml and VCP::Dest::revml are now binary, control code, and
     "hibit ASCII" (I know, that's an oxymoron) clean.  The <comment>, <delta>,
     and <content> elements now escape anything other than tab, line feed,
     space, or printable chars (32 <= c <= ASCII 126) using a tag like '<char
     code="0x09">'.  The test suite tests all this.  Filenames should also
     be escaped this way, but I didn't get to that.
   - The decision whether to do deltas or encode the content in base64 is now
     based on how many characters would need to be escaped.
   - We now depend on the users' diff program to have a "-a" option to force it
     to diff even if the files look binary to it.  I need to use Diff.pm and
     adapt it for use on binary data.
   - VCP::Dest::cvs now makes sure that no two consecutive revisions of the
     same file have the same mod_time.  VCP::Source::p4 got so fast at pulling
     revisions from the repositories the test suite sets up that CVS was not
     noticing that files had changed.
   - VCP::Plugin now allows you to set a list of acceptable result codes, since
     we now use p4 in ways that make it return non-zero result codes.
   - VCP::Revs now croaks if you try to add two entries of the same VCP::Rev
     (ie matching filename and rev_id).
   - The <type> tag is now limited to "text" or "binary", and is meant to
     pass that level of info between foreign repositories.
   - The <p4_info> on each file now carries the one line p4 description of
     the file so that p4->p4 transferes can pick out the more detailed
     info.  VCP::Source::p4, VCP::Dest::p4 do this.
   - VCP::{Source,Dest}::{p4,cvs} now set binaryness on added files properly,
     I think.  For p4->p4, the native p4 type is preserved.  For CVS sources,
     seeing the keyword substitution flag 'o' or 'b' implies binaryness, for
     p4, seeing a filetype like qr/u?x?binary/ or qr/x?tempobj/ or "resource"
     implies binaryness (to non-p4 destinations).  NOTE: Seeing a 'o' or 'b'
     in a CVS source only ends up setting the 'b' option on the destination.
     That should be ok for most uses, but we can make it smarter for cvs->cvs
     transfers if need be.
#2 468 Barrie Slaymaker - VCP::Dest::p4 now does change number aggregation based on the
  comment field changing or whenever a new revision of a file with
  unsubmitted changes shows up on the input stream.  Since revisions of
  files are normally sorted in time order, this should work in a number
  of cases.  I'm sure we'll need to generalize it, perhaps with a time
  thresholding function.
- t/90cvs.t now tests cvs->p4 replication.
- VCP::Dest::p4 now doesn't try to `p4 submit` when no changes are
  pending.
- VCP::Rev now prevents the same label from being applied twice to
  a revision.  This was occuring because the "r_1"-style label that
  gets added to a target revision by VCP::Dest::p4 could duplicate
  a label "r_1" that happened to already be on a revision.
- Added t/00rev.t, the beginnings of a test suite for VCP::Rev.
- Tweaked bin/gentrevml to comment revisions with their change number
  instead of using a unique comment for every revision for non-p4
  t/test-*-in-0.revml files.  This was necessary to test cvs->p4
  functionality.
#1 467 Barrie Slaymaker Version 0.01, initial checkin in perforce public depot.