Now emerge-delta-webrsync happily syncs to an earlier state of the tree if for example the following happens: rj baselayout # emerge-delta-webrsync Looking for available base versions for a delta fetching patches --09:26:19-- http://trumpetti.atm.tut.fi/gentoo///snapshots/deltas/snapshot-20061029-20061029.patch.bz2.md5sum => `/usr/portage/distfiles/snapshot-20061029-20061029.patch.bz2.md5sum' Resolving proxy.mil.fi... 217.152.51.53 Connecting to proxy.mil.fi|217.152.51.53|:8080... connected. Proxy request sent, awaiting response... 404 Not Found 09:26:19 ERROR 404: Not Found. failed fetching snapshot-20061029-20061029.patch.bz2.md5sum no patches found? up to date? syncing with existing file Syncing local tree... apparently you have tarsync installed. using it. scanning tarball... emerge-delta-webrsync should check the timestamps of the Portage tree and not sync the tree to an earlier state.
There's already an emerge-delta-webrsync -u option will make it skip the sync in this case. Changing the default seems reasonable though. We can borrow the get_snapshot_timestamp() function from emerge-webrsync, which grabs the timestamp from inside the tar file, and use that for a sanity check.