[Python-Dev] Moving the ctypes repository to python.org

Thomas Heller theller at python.net
Fri Jun 30 11:04:06 CEST 2006


Martin v. Löwis schrieb:
> Thomas Heller wrote:
>> What I did was at a certain time develop in the 'branch_1_0' branch, leaving
>> HEAD for experimental work. Later I decided that this was wrong, cvs removed all
>> files in HEAD, and added them back from a branch_1_0 checkout. Maybe doing
>> this was another bad idea, as the trunk in the converted SVN repository
>> only lists _ctypes.c revisions corresponding to the CVS version numbers
>> 1.307 up to the current CVS head 1.340. All the older versions from 1.1 up to
>> 1.226.2.55 show up in the branch_1_0 branch that cvs2svn has created - although
>> in CVS only the versions 1.226.0.2 up to 1.226.2.55 were ever in the branch_1_0
>> branch. Is that a bug in cvs2svnn?
>> I doubt it. I'm pretty sure the subversion repository *does* contain all
> the old files, in the old revisions. What happens if you do the
> following on your converted subversion repository:
>> 1. find out the oldest version of the files from svn log. Say this is
> version 1000.
> 2. Explicitly check out the trunk at version 950 (i.e. some plenty
> revisions before your copied the files from the branch).
>> I expect that this will give you the files just before you deleted
> them; doing "svn log" on this sandbox will then give you all the old
> log messages and versions.
>> If that is what happens, here is why: "svn log" will trace a file
> through all its revisions, and across "svn copy"s, back to when it
> was added into the repository. At that point, "svn log" stops.
> An earlier file with the same name which got removed is considered
> as a different file, so "svn log" does not show its revisions.
>> If you don't want that do happen, you could try to "outdate" (cvs -o)
> the deletion and readdition in CVS, purging that piece of history.
> I'm not entirely certain whether this should work.

You mean 'cvs admin -o', right?
Yes, that works. Here is what I did:
- got a local copy of the cvs repository from SF with rsync.
 All the following was done on thos local copy.
- I ran 'cvs log' over the whole repository, and noted the files
 that were removed in the HEAD and later readded from a branch.
- I wrote a script that calls 'cvs admin -o' on them.
- removed those directories that should not be added to Python SVN,
 these were the ctypes-java, misc and CVSROOT directories.
- called 'cvs2svn --dump-only' to create a subversion dumpfile.
 The file size is around 100 MB.
- Created a local SVN repository, called 'svnadmin load'.
Now I can checkout from the local SVN repository, and the whole
history on the files that I checked is present.
The svn checkup has this structure, which is OK imo:
ctypes
 branches
 tags
 trunk
The remaining questions are:
- Do I need special rights to call 'svnadmin load' to import this dumpfile
 into Python SVN, or are the normal commit rights sufficient?
 What exactly is the URL/PATH where it should be imported (some sandbox,
 I assume)?
- What about the Python trunk? Should changes from the sandbox be merged
 into Modules/_ctypes and Lib/ctypes, or would it be better (or possible at all)
 to use the external mechanism?
Thanks,
Thomas


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /