Thus said David Mason on Sun, 05 Oct 2014 11:05:27 -0400:

> Absolutely.  It should  work fine  and  it's better  than my  original
> shell-only version. I don't really want to do it that way for a couple
> of reasons: 1) I don't want to *have* to be running a fossil server (I
> do updates via ssh); and 2) it seems like a lot of overhead (execution
> as well as "old version" files) and redundancy.

For 1, you don't have to run  a fossil server, you can fetch RSS updates
via SSH too:

ssh user@remote fossil rss -R /path/to/project.fossil

As for 2, yes, I suppose you  will end up with potentially 2 extra files
for each  repo (1 if you  rm the $NEW  when there are no  changes). That
doesn't  seem  like much  to  me,  but  I  understand others  may  think
differently. I'll agree that it is  not as optimal as having Fossil tell
you when there are changes  (well, actually fossil rss publishes changes
so it is  possible to detect differences in changes  as my script shows,
so that's not entirely accurate).


> So instead of ``fossil update -q"  I would write ``fossil update -s -n
> >/dev/null". I think this is better  as it's more incremental and also
> more orthogonal.

I think that if you use --dry-run,  fossil update won't even sync; it is
intended  to show  what would  be  updated to  an existing  name in  the
repository (e.g. fossil update -n branch5).  This means it won't walk to
the remote server and won't know about any changes.

I could be wrong, but given that  there currently is not a --dry-run for
on-network sync operations, I believe that the challenge here will be to
fake  the sync  protocol  to the  point  where we  know  that there  are
changes,  but  don't  send  or  receive any  of  the  changes  into  the
repository. Otherwise, you run into a different set of overhead problems
(e.g. you pull down potentially large amounts of data, then rollback the
commit  for the  sole purpose  of  reporting that  there is  data to  be
synced).

Then we need  to know what should  be reported on. Do we  report only if
the list of artifacts that  we have received includes direct descendents
of our current  checkout (which probably means parsing  the manifests of
those  artifacts, which  also implies  that we  have already  downloaded
those manifests)? Or  take the simple approach and just  report if there
are new artifacts?

Andy
-- 
TAI64 timestamp: 4000000054322391


_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to