[darcs-users] packages + revision control: is that possible?

Mojca Miklavec mojca.miklavec.lists at gmail.com
Wed Sep 12 16:16:19 UTC 2007


Hello,

I've been googling around, but found no satisfactory solution so far.
I would like to have a repository holding multiple packages/modules,
but as opposed to svn, where each "module" is a separate folder, I
need multiple packages/modules to contain files in the same folder.

So, assume that I have the following files:

dir1/file1 (belongs to package 1)
dir1/file2 (belongs to package 1)
dir1/file3 (belongs to package 2)
dir2/file1 (belongs to package 1)
dir2/file2 (belongs to package 2)

The "easiest solution" to distribute the packages is to have two zip
files, each one containing its own files:

package1.zip:
dir1/file1
dir1/file2
dir2/file1
package2.zip:
dir1/file3
dir2/file2

And then the user chooses which packages he wants to have. But there
are multiple problems:
- if something tiny changes, one needs to download & unpack the whole
zip (too much bandwidth used)
- there are too many zips to choose from, one cannot expect the user
to manually unpack all the changed ones on a regular basis (that could
be solved by some scripts, but is still not so great as it could be)

Some facts:
- the few maintainers are ready to manually assign which file belongs
to which package
- the many users are ready to manually choose the packages they want
- but the users would like to issue only "something update" to get all
the updates with as few bandwidth used as possible
- and the maintainers would love to be able to issue only "something
commit" (plus a few "something addtomodule file(s) module" statements
for new files and "something remove/delete file(s)" for old files to
be removed)

Even if there is the following (simpler) structure in SVN:
dir1/dirA1
dir1/dirB1
dir2/dirA2
dir2/dirB2
there is no chance for the user to say "I would like to have
everything except for dirB1 to be downloaded/updated". I didn't study
darcs well enough to be able to figure out if that's possible there.

Does darcs or any other revision control sytem in this world support
something like that (modules)? Some people suggested me that rsync
might help, but that's only partially solving the problem.

It seems to me that supporting something like that doesn't take so
much additional effort in a revision control system (as compared to
writing one from scratch) and that many project would find such a
feature useful (most linux distributions download complete packages
from internet when they need to upgrade them, not only the "diffs",
sytems such as MikTeX download complete packages although perhaps only
some tiny bits have changed inside packages, ... OK, they all need to
perform additional tasks after downloading, but that's still a lot of
lost web traffic.)

I would be very grateful for any answer, or at least a hint,
    Mojca


More information about the darcs-users mailing list