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