Re: [fossil-users] autosync with fossil merge

2013-07-20 Thread Matt Welland
On Fri, Jul 19, 2013 at 8:39 AM, Richard Hipp d...@sqlite.org wrote:

 On Fri, Jul 19, 2013 at 11:24 AM, Matt Welland estifo...@gmail.comwrote:

 For anyone training a large team on using Fossil I can't emphasis enough
 how important it is to get your users comfortable with the distributed
 nature of Fossil *before* allowing them to enjoy the benefits of the
 connected sync.


 I would like to hear more about your experiences in this area.  Please
 feel free to elaborate this, as time permits.


Sure, here are some comments on our experience. The context here is a
fairly large team well versed in using tools such as Subversion, DesignSync
and CVS.  Growth in release frequency resulted in overlapping releases
leading to a need for better parallel development methodology (i.e. diverge
for a while then converge). Many tools were evaluated including fossil,
after evaluation we decided to take a risk and give fossil a chance.
Autosync along with the svn like behaviour was a big selling point for
fossil.

The training we put together briefly covered the distributed nature of
fossil, including the local vs. remote copies of the database and how
deltas were synced back and forth. However in the training we quickly moved
on to the gritty details of committing, merging, adding, removing etc. as
the focus was on getting folks up to speed quickly. A wrapper script, fsl,
was written to enable us to shield users from some aspects of fossil deemed
less relevant to our needs. For example instead of having to do mkdir
training; fossil clone file://path/to/common/training.fossil
training.fossil;cd training;fossil open ../training.fossil the fsl wrapper
enables a single command, fsl repo get common training.

The problems that came up fell roughly into three buckets; general problems
related to learning a new tool, problems with fossil itself (most of which
were addressed amazingly promptly IMHO), and problems related to the
distributed nature of fossil.

The first two categories tapered off in frequency fairly quickly and were
for the most part not a huge deal. The problems related to the distributed
nature of fossil took much longer to come to peace with. Forks were a big
problem for two reasons. First, they were invisible to the users. We have
quite a few power users who were accustomed to getting things done at the
command line. When a fork occurred mysterious things happened. Example:
User A does a commit and tells user B, the code is ready, please do an
update. User B does an update and the code is not there. They check the
branch, timeline (from the command line), status, all to no avail. Only by
checking the UI timeline could you see and fix a fork. The syncing of tags
was a similar problem. User A tags the repo and lets others know to get the
tagged code but ... there is no tag if you didn't manually sync. After that
happened a few times we added an auto sync to the tag command and code to
detect a fork and warn users in the fsl wrapper.

Note that some forks were happening because the automated sync between
remote sites was taking several minutes and overlapping commits would
result in the silent creation of a fork (I believe that the latest version
of fossil detects this and notifies the user that a fork has occurred). It
is impossible to prevent all forks in this setup. This is obvious to anyone
who gets fossil's distributed nature.

userA =autosync= centralSiteX  ===slow sync=== centralSiteY
=autosync= userB

I believe that the fork and tag (and a couple times merge) behaviour was
exceedingly confusing to folks because even though the distributed nature
of fossil was taught in the training it was not emphasized enough for
people to grasp fully the implications. In most users minds the new system
they were using was like svn but with way easier branch and merge.

Any new training I do would start out with extensive practice in using raw
fossil commands for cloning etc. so that people get a gut feel for the fact
that it takes time (and a sync) to get changes, tags etc. back and forth
from their private repo to the central repo.

At this point the frequency of problems with forks and sync that get
brought to my attention is almost zero. People have learned how to fix the
fork themselves or are seeking out others on the team for support.

After all this experience with Fossil I feel I can recommend it to other
teams because it really does make diverging and converging code easy and it
is relatively easy to learn and administer. The caveat again is, get
comfortable with the distributed nature first, turn off autosync for the
first hour of hands on training :)

I hope this write up helps anyone else seeking to ramp up a large team on
fossil.

Thanks,

Matt
-=-



 --
 D. Richard Hipp
 d...@sqlite.org
 ___
 fossil-users mailing list
 fossil-users@lists.fossil-scm.org
 http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users




-- 
Matt
-=-
90% of the nations 

Re: [fossil-users] Shared SSH account consideration.

2013-07-20 Thread Andy Bradford
Thus said Martin Gagnon on Wed, 17 Jul 2013 08:04:10 -0400:

 I propose to add a kind of  -l|--login option to the clone command, so
 when the  username@ is present but  don't match the repo  username, we
 could specify repo username with -l.

After giving  this additional thought, I  went ahead and took  a stab at
it:

http://www.fossil-scm.org/index.html/info/9dd4a935e8

Please note,  however, that there  are significant changes to  make this
work---as I  suspected there would  be. Probably the  biggest noticeable
change will  be on Windows. It  no longer prompts for  your SSH password
(which actually makes  it behave the same  as it does on  *nix). I'm not
sure why it  ever did prompt for  the SSH password (seems a  bad idea to
print a *nix account password in the command). If the change for Windows
does not  work out,  we'll have to  figure out something  else to  do on
Windows.

At any  rate, it is now  possible to specify  a Fossil SSH user  that is
different from the URL user:

local$ fossil clone -l amb ssh://guest@remote//tmp/shared.fossil my.fossil
password for amb: 
remember password (Y/n)? y
Round-trips: 1   Artifacts sent: 0  received: 0
ssh -e none -T guest@remote fossil http /tmp/shared.fossil
Round-trips: 2   Artifacts sent: 0  received: 1
ssh -e none -T guest@remote fossil http /tmp/shared.fossil
Round-trips: 2   Artifacts sent: 0  received: 3
Clone finished with 548 bytes sent, 1163 bytes received
Rebuilding repository meta-data...
  100.0% complete...
project-id: 2ee3868b26efd6e77532f0a7133f1e67eb2ac189

The guest account on remote has  my SSH key installed, restricting me to
just that fossil repository.

Please  test this  as  much  as possible.  It  works  in my  environment
(OpenBSD)  but  I  would  like  to  know how  well  it  works  in  other
environments, and specifically Windows.

Oh, and here is making a change:

local$ mkdir open
local$ cd open
local$ fossil open ../my.fossil 
local$ echo $RANDOM  file
local$ fossil add file
ADDED  file
local$ fossil ci -m first
Autosync:  ssh://guest:*@remote//tmp/shared.fossil
Round-trips: 1   Artifacts sent: 0  received: 0
ssh -e none -T guest@remote fossil http /tmp/shared.fossil
Round-trips: 1   Artifacts sent: 0  received: 0
Pull finished with 349 bytes sent, 285 bytes received
New_Version: 8efef71512ae129821f5ca035d9c33e722aa75cb
Autosync:  ssh://guest:*@remote//tmp/shared.fossil
Round-trips: 1   Artifacts sent: 2  received: 0
ssh -e none -T guest@remote fossil http /tmp/shared.fossil
Round-trips: 1   Artifacts sent: 2  received: 0
Sync finished with 541 bytes sent, 339 bytes received


Let  me  know how  it  works  out for  you  or  if you  have  additional
suggestions.

Cheers,

Andy
--
TAI64 timestamp: 400051ea5667
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] By week-of-year statistics

2013-07-20 Thread Stephan Beal
On Wed, Jul 17, 2013 at 3:53 PM, Stephan Beal sgb...@googlemail.com wrote:

 On Wed, Jul 17, 2013 at 3:00 PM, Richard Hipp d...@sqlite.org wrote:

 While you are on the subject of the stats_report page, could you look
 into possibly scaling the line lengths if they grow to large.  See, for
 example


  http://core.tcl.tk/tcl/stats_report?view=byuser



 Andreas K pointed that repo out to me a few weeks ago. They're
 literally... off the charts. Yes, i'll look into a solution for that.
 (Ideas are of course welcomed - i was hoping to avoid traversing the data
 twice in order to calculate relative sizes.)


Fixed and much improved:

http://www.fossil-scm.org/index.html/vdiff?from=47ee082a75d42263to=674a24a3603ed201sbs=1

the bars now use a relative width based on the maximum event count for the
current report's query and the longest bar (most events) has a width of
100%, so resizing the browser window resizes the bars. This requires
running through the queries twice, but the effect is much nicer than the
absolute values used before.

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] By week-of-year statistics

2013-07-20 Thread Stephan Beal
On Sat, Jul 20, 2013 at 6:45 PM, Stephan Beal sgb...@googlemail.com wrote:

 Fixed and much improved:


 http://www.fossil-scm.org/index.html/vdiff?from=47ee082a75d42263to=674a24a3603ed201sbs=1


Demo:

http://fossil.wanderinghorse.net/repos/cwal/index.cgi/stats_report?view=byweek

try resizing your browser in that view.

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] By week-of-year statistics

2013-07-20 Thread Andy Bradford
Thus said Stephan Beal on Sat, 20 Jul 2013 18:48:44 +0200:

 http://fossil.wanderinghorse.net/repos/cwal/index.cgi/stats_report?view=byweek
 
 try resizing your browser in that view.

Looks  like it  works  great.

Just  one  observation; I  find  that  the  alternating row  colors  are
distracting in the bar graph area.

I   edited  the   CSS  locally   and   just  commented   out  the   row1
background-color and I thought it looked better.

Andy
-- 
TAI64 timestamp: 400051ead348


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


Re: [fossil-users] By week-of-year statistics

2013-07-20 Thread Stephan Beal
On Sat, Jul 20, 2013 at 8:12 PM, Andy Bradford 
amb-sendok-1376935974.nbhjmboafacidibep...@bradfords.org wrote:

 Thus said Stephan Beal on Sat, 20 Jul 2013 18:48:44 +0200:

 
 http://fossil.wanderinghorse.net/repos/cwal/index.cgi/stats_report?view=byweek
 
  try resizing your browser in that view.

 Looks  like it  works  great.


:)


 Just  one  observation; I  find  that  the  alternating row  colors  are
 distracting in the bar graph area.


That's CSS. IIRC the core fossil repo (or default style) does not have
colors for the CSS classes tr.row0 and tr.row1 by default.


 I   edited  the   CSS  locally   and   just  commented   out  the   row1
 background-color and I thought it looked better.


Personal preference - that's why it's in CSS :).

Thanks for the feedback!

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] New command proposal?

2013-07-20 Thread Andy Bradford
Hello,

I've been  working on a simple  fossil command that will  integrate with
SSH accounts where SSH  keys are in use and wonder if  there is a formal
process for coming up with new subcommand  names? Here is what I have at
the moment:

$ fossil help gate
Usage: fossil gate ?FILENAME?

fossil gate ?FILENAME?

   Scans filename for the requested fossil path found in the
   SSH_ORIGINAL_COMMAND environment variable and runs 
   fossil http path if found.

   If filename is not present, just run fossil http with the
   requested path and the operating system will impose restrictions.

Any suggestions?

Thanks,

Andy
--
TAI64 timestamp: 400051eafbf8
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New command proposal?

2013-07-20 Thread Rene

On 2013-07-20 23:06, Andy Bradford wrote:

Hello,

I've been  working on a simple  fossil command that will  integrate 
with
SSH accounts where SSH  keys are in use and wonder if  there is a 
formal
process for coming up with new subcommand  names? Here is what I have 
at

the moment:

$ fossil help gate
Usage: fossil gate ?FILENAME?

fossil gate ?FILENAME?

Scans filename for the requested fossil path found in the
SSH_ORIGINAL_COMMAND environment variable and runs
fossil http path if found.

If filename is not present, just run fossil http with the
requested path and the operating system will impose restrictions.

Any suggestions?

Thanks,

Andy
--
TAI64 timestamp: 400051eafbf8
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

I don not understand  this.
A forced command is in place and it can only be fossil http.This will 
check

if it is started via ssh and then look in the environment to see if
the request was fossil gate myotherdb.

what are you trying to archive?
--
Rene
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New command proposal?

2013-07-20 Thread Andy Bradford
Thus said Rene on Sun, 21 Jul 2013 00:00:01 +0200:

 A forced command is in place and  it can only be fossil http.This will
 check if it is started via ssh and then look in the environment to see
 if the request was fossil gate myotherdb.

 what are you trying to archive?

I'm trying to  accomplish what I believe Matt Welland  was suggesting it
do,  which  I did  like.  Basically,  if I  have  an  SSH account  named
``fossil'' on my server, I can use it to server out as many fossils as I
like to any given SSH key connecting to the ``fossil'' account.

The forced command on the server will be:

command=/usr/bin/fossil gate /tmp/allowed-fossils ssh-rsa ...

fossil  gate  will then  inspect  SSH_ORIGINAL_COMMAND  and extract  the
requested fossil repo. If the  FILENAME contains the requested repo (and
perhaps if it is executable  and returns successfully), fossil gate will
then exec ``fossil  http /path/to/repo'' otherwise it will  exit with an
error.

This allows you to use the same client SSH key to access multiple remote
fossil accounts using  the same remote SSH account. This  allows for a 1
to many as opposed to 1 to 1 relationship.

It will still be possible for a forced command to be:

command=/usr/bin/fossil http /tmp/file.fossil ssh-rsa ...

However, this  means that you  can only  ever access that  single fossil
file using that SSH key and SSH account combination.

Thoughts?

Andy
-- 
TAI64 timestamp: 400051eb0e0f


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


[fossil-users] Happy Birthday, Fossil!

2013-07-20 Thread Stephan Beal
Hi, all,

Six years ago today, the first commits were made...

http://www.fossil-scm.org/index.html/timeline?yw=2007-29n=4

http://www.fossil-scm.org/index.html/stat

says:

Duration Of Project:2192 days or approximately 6.00 years.

No idea how long before that work was ongoing, but the src dir already
contained a bunch of stuff:

http://www.fossil-scm.org/index.html/dir?ci=dbda8d6ce9ddf01aname=src

Happy Hacking!

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users