zellux> I want to write a version-tracking tool for Python projects, and
    zellux> need some sample projects whose even smallest modifications can
    zellux> be downloaded from the internet.

Sure.  Python itself.  Do a checkout of the code from Subversion then for
any given file just ask Subversion for a diff between it and the previous
version.  For example:

    % pwd
    /Users/skip/src/python/trunk
    % svn info Lib/os.py
    Path: Lib/os.py
    Name: os.py
    URL: svn+ssh://[EMAIL PROTECTED]/python/trunk/Lib/os.py
    Repository Root: svn+ssh://[EMAIL PROTECTED]
    Repository UUID: 6015fed2-1504-0410-9fe1-9d1591cc4771
    Revision: 67276
    ...
    % svn log Lib/os.py
    ------------------------------------------------------------------------
    r66142 | gregory.p.smith | 2008-09-02 00:36:11 -0500 (Tue, 02 Sep 2008) | 3 
lines

    Issue #3708: os.urandom no longer goes into an infinite loop when passed a
    non-integer floating point number.

    ------------------------------------------------------------------------
    r65795 | brett.cannon | 2008-08-17 19:46:22 -0500 (Sun, 17 Aug 2008) | 3 
lines

    Update __all__ for cookielib, csv, os, and urllib2 for objects imported into
    the module but exposed as part of the API.

    ------------------------------------------------------------------------
    r63493 | georg.brandl | 2008-05-20 02:49:57 -0500 (Tue, 20 May 2008) | 2 
lines

    Revert copy_reg -> copyreg rename.

    ------------------------------------------------------------------------
    r63158 | ronald.oussoren | 2008-05-12 06:24:33 -0500 (Mon, 12 May 2008) | 5 
lines

    Remove references to platform 'mac'

    The 'mac' platform (that is, os.name == 'mac') was used for the MacOS 9 
port,
    which is no longer supported (as of Python 2.4 IIRC).
    ...
    % svn diff -r66142:65795 Lib/os.py
    Index: Lib/os.py
    ===================================================================
    --- Lib/os.py       (revision 66142)
    +++ Lib/os.py       (revision 65795)
    @@ -753,10 +753,8 @@
                 _urandomfd = open("/dev/urandom", O_RDONLY)
             except (OSError, IOError):
                 raise NotImplementedError("/dev/urandom (or equivalent) not 
found")
    -        try:
    -            bs = b""
    -            while n - len(bs) >= 1:
    -                bs += read(_urandomfd, n - len(bs))
    -        finally:
    -            close(_urandomfd)
    -        return bs
    +        bytes = ""
    +        while len(bytes) < n:
    +            bytes += read(_urandomfd, n - len(bytes))
    +        close(_urandomfd)
    +        return bytes
    % svn diff -r65795:63493 Lib/os.py
    Index: Lib/os.py
    ===================================================================
    --- Lib/os.py       (revision 65795)
    +++ Lib/os.py       (revision 63493)
    @@ -28,7 +28,7 @@
     _names = sys.builtin_module_names

     # Note:  more names are added to __all__ later.
    -__all__ = ["altsep", "curdir", "pardir", "sep", "extsep", "pathsep", 
"linesep",
    +__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
                "defpath", "name", "path", "devnull",
                "SEEK_SET", "SEEK_CUR", "SEEK_END"]

And so on.  In general, any open source project should be available in this
fashion.  The details for fetching diffs will depend on the specific source
code control system being used.

-- 
Skip Montanaro - [EMAIL PROTECTED] - http://smontanaro.dyndns.org/
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to