TODO for VCP *NOTE* Doing a `grep -r TODO lib bin` will find lots of small things and future feature ideas. This file will grow to include the more important of those. - Bugfixes - Prevent keyword expansion on all checkouts. Found by Thomas Quinot <quinot@inf.enst.fr> - Check for p4 >= 99.2 at runtime, since filelog -m is needed - Carry executable bit through (Nick Ing-Simmons) - Make <rev_root> and <name> escape their characters - VCP::Dest::cvs needs to set the binary mode properly on files it creates and checks in - VCP::Source::cvs needs to deduce binary modes correctly - Make test suite use an alternate port for p4d so multiple make test instances can be run in parallel - Make test suite skip cvs tests if cvs is not present (like it skips p4 tests if p4 is not present). - Feature Adds - Need to make the transfers more transactional, so we can recover from where we left off when something fails. - Need to save some sort of state as to where the last export ended so the next one can start from there. - Offer compressed output for revml files a la tar's "z" option. - Consider offering <char code=0x00 repeat=34234> (david d zuhn <zoo@bravara.com>) - Perhaps allow keyword expansion, but convert the expanded texts so that they are no longer seens as RCS style keywords. This would allow imported files to have a "stamp of origin" in them. Would also need an option to leave the keywords in place in this case, since the user might presumably want expansion to work correctly in the new repository too. Suggested by Thomas Quinot <quinot@inf.enst.fr> - Add a link checker to vcp html - Efficiency - The cvs drivers can be made faster - VCP::Source::revml should only reconstitute what it needs in order to conserve disk space. - Tests - rerooting revml->p4 to someplace deep in the p4 tree, to make sure that VCP is configuring p4 to map the files to the right place.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 1375 | Sean McCune | Creating my own branch for work on vcp. | ||
//guest/perforce_software/revml/TODO | |||||
#9 | 1367 | Barrie Slaymaker | lots of docco updates | ||
#8 | 1358 | Barrie Slaymaker | Win32 changes | ||
#7 | 1330 | Barrie Slaymaker | Ignore cvs lock mgmt warnings in VCP::Source::cvs. | ||
#6 | 824 | Barrie Slaymaker | Fix p4 backfilling path math to not mangle paths. | ||
#5 | 719 | Barrie Slaymaker | vcp 0.221 | ||
#4 | 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. |
||
#3 | 628 | Barrie Slaymaker | Cleaned up POD in bin/vcp, added BSD-style license. | ||
#2 | 620 | Barrie Slaymaker |
Underscorify CVS tags, only warn about undeleted files if debugging. |
||
#1 | 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 Amaury.FORGEOTDARC@atsm.fr. 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. |