[darcs-devel] [issue463] feature request: sendable checkpoints

Trent Buck bugs at darcs.net
Sun May 20 23:05:42 PDT 2007


New submission from Trent Buck <trentbuck at gmail.com>:

Currently, darcs push does not transfer checkpoints.  Presumably darcs
send does not, either.  This is irritating in the following scenario:

    - The canonical version of project Snort is on host fs.

    - Only the project leader has ssh access to fs.  The project
      leader is on a four-week holiday.

    - I commit patches by darcs sending to snort-commit at fs, where a
      procmail script performs the required darcs apply.

In this situation, checkpoints cannot be created (in the canonical
repository).

Transcript follows.

| TEMP> darcs init --repodir=x
| TEMP> darcs init --repodir=y
| TEMP> cd x
| TEMP> touch a b c
| TEMP> darcs rec -lam a a
| Recording changes in "a":
| 
| Finished recording patch 'a'
| TEMP> darcs rec -lam b b
| Recording changes in "b":
| 
| Finished recording patch 'b'
| TEMP> darcs rec -lam c c
| Recording changes in "c":
| 
| Finished recording patch 'c'
| TEMP> darcs tag --checkpoint 1
| Finished tagging patch 'TAG 1'
| TEMP> cd ..
| TEMP> darcs get x
| Directory '/tmp/tmp.iwjPQ19581/x' already exists, creating repository as '/tmp/tmp.iwjPQ19581/x_0'
| Copying patch 4 of 4... done!
| Finished getting.
| TEMP> darcs get --partial x
| Directory '/tmp/tmp.iwjPQ19581/x' already exists, creating repository as '/tmp/tmp.iwjPQ19581/x_1'
| Copying patch 1 of 1... done!
| Finished getting.
| TEMP> darcs push -as --repodir=x ../y
| Will push the following changes:
| Mon May 21 14:22:50 EST 2007  Trent Buck <trentbuck at gmail.com>
|   * a
| 
|     A ./a
| 
| Mon May 21 14:22:51 EST 2007  Trent Buck <trentbuck at gmail.com>
|   * b
| 
|     A ./b
| 
| Mon May 21 14:22:53 EST 2007  Trent Buck <trentbuck at gmail.com>
|   * c
| 
|     A ./c
| 
| Mon May 21 14:23:06 EST 2007  Trent Buck <trentbuck at gmail.com>
|   tagged 1
| 
| Finished applying...
| 
| TEMP> darcs get y
| Directory '/tmp/tmp.iwjPQ19581/y' already exists, creating repository as '/tmp/tmp.iwjPQ19581/y_0'
| Copying patch 4 of 4... done!
| Finished getting.
| TEMP> darcs get --partial y
| Directory '/tmp/tmp.iwjPQ19581/y' already exists, creating repository as '/tmp/tmp.iwjPQ19581/y_1'
| Copying patch 4 of 4... done!
| Applying patch 4 of 4... done.
| Finished getting.

Observe that the checkpoint is not copied.  Since this is a local
repository, we can do this:

| TEMP> darcs optimize --repodir=y --checkpoint
| Checkpointing tag:
| Mon May 21 14:23:06 EST 2007  Trent Buck <trentbuck at gmail.com>
|   tagged 1
| Done optimizing!
| TEMP> darcs get --partial y
| Directory '/tmp/tmp.iwjPQ19581/y' already exists, creating repository as '/tmp/tmp.iwjPQ19581/y_2'
| Copying patch 1 of 1... done!
| Finished getting.

If we could only communicate with `y' via darcs send, it would be
impossible to create checkpoints in it.
-- 
Trent Buck

----------
messages: 1702
nosy: EricKow, beschmi, droundy, tommy, trentbuck
status: unread
title: feature request: sendable checkpoints

____________________________________
Darcs issue tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue463>
____________________________________


More information about the darcs-devel mailing list