Web update library in python?

A.T.Hofkamp hat at se-162.se.wtb.tue.nl
Tue Nov 20 07:09:05 EST 2007


On 2007-11-20, Jorgen Bodde <jorgen.maillist at gmail.com> wrote:
> The 'repositories' can be created by anyone who likes to share their
> code templates, and let the end user configure this template and
> create a customized code base of it, on which they can code their
> entire app. My tool supports incremental configuration which means if
> there are updates to this repository, the user simply has to click
> configure/generate again and merge the changes into their working
> copy.

SVN seems not useful in your situation, exactly because of the assumption of a
single authorative repository that everybody uses, as you described.



Instead, I think you should have a look at distributed SCM tools.

Distributed SCMs do not have the concept of a central repo (that's why they are
called 'distributed'), everybody can start their own repo (or copy one from
elsewhere), hack away, and offer their changes to others.
The system manages exchange of patches between the repositories.

I have currently very limited experience with distributed SCMs. I just started
experimenting locally with bzr.

Please note that 'bzr repository' is comparable to a 'svn working copy'. There
are no doubt subtle and not-so-subtle differences, but as I said, I have
limited experience...


The problem that I solved was that I wanted to have several personal
sub-projects inside a SVN-based project (that I do not own and have no write
access to). The changes of my sub-projects are then feed back into the main
project and (hopefully) committed.
Of course, these diffs should be against a recent SVN trunk of the project.

I created a project_trunk directory with the anonymous SVN checkout. On top
of svn, I added bzr management.
(after 'svn update' I add/commit the changes also in bzr in the same directory).
This directory now functions as an authorative source of bzr updates.

Now, each personal sub-project is a copy of that bzr repo. I can do arbitrary
code hacking, committing, running diff etc in each sub-project.
I can also merge changes from the project_trunk directory with 'bzr merge' to
pull in new updates from the SVN project.

Although I haven't tried it, it should also be possible to copy/merge changes
between my personal sub-projects.


[hmm, while answering your post, I read some of the bzr website, and found that
 bzr has a standard tool for doing what I do... nice ]


> I really thought about SVN but I would not like end-users to be
> bothered with maintaining or installing SVN or a SVN server, and have
> intermediate .svn local files inside every directory ;-)

Now in your case, my 'project_trunk' would be your central web-site, and my
personal sub-projects would be your users.
Of course, the bandwidth between your website and users is a bit smaller than
my local file system bandwidth, but given the fact that these SCMs are designed
to work in a distributed way across the Internet, so I would expect them to
handle this.



Albert



More information about the Python-list mailing list