Re: [fossil-users] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stephan Beal
Hiho,

On Fri, Jan 11, 2013 at 9:04 PM, j. v. d. hoff veedeeh...@googlemail.comwrote:

 e.g. for the fossil repo itself (as of today at e4ca677a6c), `fossil info'
 reports

 checkin-count: 4845

 however, I do see a total (files+wiki+ticket) of 8799 checkins and

 fossil time -t ci -n 1|grep ^[0-9]|wc -l


 yields 4009.


i just tried that grep and still get the same 4009, though there have been
commits since then that time:

stephan@tiny:~/cvs/fossil/fossil$ f time -t ci
=== 2013-01-13 ===
02:01:18 [a0dd51e9af] *CURRENT* Allow the FOSSIL_USER environment variable
to
 be used as a fallback when creating a new repository. (user:
 mistachkin tags: trunk)
...

stephan@tiny:~/cvs/fossil/fossil$ f time -t ci -n 1|grep ^[0-9]|wc -l
4009

So apparently there's a flaw with that counting logic (but i don't see what
it is off hand).




 so what is `checkin-count' actually reporting??


i tried a second query for this and get results comparable (but not
identical) to the /stat page:

stephan@tiny:~/cvs/fossil/fossil$ sqlite3 ../fossil.fsl
...
sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='ci';
4890

info (or the /stat page) says:

stephan@tiny:~/cvs/fossil/fossil$ f info
...
checkin-count: 4846


version: This is fossil version 1.25 [0fb6c829f2] 2013-01-08 16:55:39 UTC

For ticket and wiki modifications i get these numbers:

sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='t';
3137
sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='w';
282

and events:
sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='e';
4

For a total number of repository events (not to be confused with Event
entries) of:

sqlite select count(*) from event;
8802

(note that i skipped over (e.type='g'))



 what I currently would find most useful is to see the total number (8799
 in the example), but maybe instead a more
 detailed statistics (file ci: xxx; wiki ci: , bug ci: ) is also of
 interest.


The wiki/ticket change counts seem to [me to] be quite unambiguous, but i'm
still not sure which of these two queries is more correct for file
commits:

sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='ci';
4890

or

sqlite SELECT count(distinct mid) FROM mlink;
4846

While the former seems to me to be correct, the latter has been in use
since Ancient Times in the /stat page, so i suspect that it is the correct
one.

Thoughts?

-- 
- 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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff
On Sun, 13 Jan 2013 11:38:17 +0100, Stephan Beal sgb...@googlemail.com  
wrote:



Hiho,


hi,

the numbers I'm going to report refer to this night's `a0dd5' being at the  
top (I presume that's the same state you are looking on?):




On Fri, Jan 11, 2013 at 9:04 PM, j. v. d. hoff  
veedeeh...@googlemail.comwrote:


e.g. for the fossil repo itself (as of today at e4ca677a6c), `fossil  
info'

reports

checkin-count: 4845

however, I do see a total (files+wiki+ticket) of 8799 checkins and

fossil time -t ci -n 1|grep ^[0-9]|wc -l




yields 4009.



i just tried that grep and still get the same 4009, though there have  
been

commits since then that time:

stephan@tiny:~/cvs/fossil/fossil$ f time -t ci
=== 2013-01-13 ===
02:01:18 [a0dd51e9af] *CURRENT* Allow the FOSSIL_USER environment  
variable

to
 be used as a fallback when creating a new repository. (user:
 mistachkin tags: trunk)
...

stephan@tiny:~/cvs/fossil/fossil$ f time -t ci -n 1|grep ^[0-9]|wc -l
4009

So apparently there's a flaw with that counting logic (but i don't see  
what

it is off hand).


it's banal: the `-n' flag does not at all specify the _number_ of timeline  
entries to show (which one would expect!) but rather (probably) the total  
number of lines
displayed. and `1' simply was to small. so that number has to be  
increased 10 or a 100 times to be on the safe side. (side note: there  
_should_ be a flag/setting for timeline enforcing display of the complete  
timeline I'd say...). so:


`fossil time -t ci -n 100|grep ^[0-9]|wc -l' yields

4890

`fossil info' yields checkin-count: 4846

so there's still a discrepancy.

`fossil time -n 100|grep ^[0-9]|wc -l' yields

8802.







so what is `checkin-count' actually reporting??



i tried a second query for this and get results comparable (but not
identical) to the /stat page:

stephan@tiny:~/cvs/fossil/fossil$ sqlite3 ../fossil.fsl
...
sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='ci';
4890


I believe that is the correct one for number of file checkins (identical  
to the above `wc' output and there was no new file checkin since you  
tried, I believe).




info (or the /stat page) says:

stephan@tiny:~/cvs/fossil/fossil$ f info
...
checkin-count: 4846


yes, that's the same number I see.




version: This is fossil version 1.25 [0fb6c829f2] 2013-01-08 16:55:39 UTC

For ticket and wiki modifications i get these numbers:

sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='t';
3137


corresponding `grep|wc' yields the same.


sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='w';
282


corresponding `grep|wc' yields the same.



and events:
sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='e';
4


not derivable from timeline output AFAICS.



For a total number of repository events (not to be confused with  
Event

entries) of:

sqlite select count(*) from event;
8802


which again is identical to what the respective `grep|wc' yields (see  
above).




(note that i skipped over (e.type='g'))


?? which is what if a humble user may ask...??






what I currently would find most useful is to see the total number (8799
in the example), but maybe instead a more
detailed statistics (file ci: xxx; wiki ci: , bug ci: ) is also  
of

interest.



The wiki/ticket change counts seem to [me to] be quite unambiguous, but  
i'm

still not sure which of these two queries is more correct for file
commits:

sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
e.type='ci';
4890


this one.



or

sqlite SELECT count(distinct mid) FROM mlink;
4846

While the former seems to me to be correct, the latter has been in use
since Ancient Times in the /stat page, so i suspect that it is the  
correct

one.


no. the first one is correct according to timeline output.

so what would be nice to have the separate checkin types reported  
separatly (and mabye, though redundant also cumulatively (i.e. the 8802 in  
this example). and, as I said, a way to enforce show whole timeline  
would be nice. maybe one could use `fossil timeline -n 0' for that???


j.


Thoughts?




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stephan Beal
On Sun, Jan 13, 2013 at 12:43 PM, j. v. d. hoff
veedeeh...@googlemail.comwrote:

 it's banal: the `-n' flag does not at all specify the _number_ of timeline
 entries to show (which one would expect!) but rather (probably) the total
 number of lines


Ah, right - i had forgotten about that (the JSON timeline is the one i
implemented and it uses -n as the _entry_ count).

sqlite select count(*) from blob b JOIN event e where b.rid=e.objid and
 e.type='ci';
 4890


 I believe that is the correct one for number of file checkins (identical
 to the above `wc' output and there was no new file checkin since you tried,
 I believe).


My gut feeling is that that is the correct (or more correct) value, but
before changing that i need to verify with DRH that that's okay because he
(i think) added the commit count in the /stat page and i'd need to change
that one as well (or maybe just change its label).



 (note that i skipped over (e.type='g'))


 ?? which is what if a humble user may ask...??


LOL! i skipped them because i could not remember what they are :/. i see
now, via name.c, that they are tag change events.

so what would be nice to have the separate checkin types reported separatly
 (and mabye, though redundant also cumulatively (i.e. the 8802 in this
 example). and, as I said, a way to enforce show whole timeline would be
 nice. maybe one could use `fossil timeline -n 0' for that???


The -n 0 flag change appears (to me) to be more difficult than it sounds
because that value is part of the calculation for ancestor depth, and
therefore has side effects on the algorithm other than simply the output
length. It appears that when two branches merge, printing n revisions
becomes philosophically problematic because one needs to know which
ancestor to crawl back in order to satisfy n. i'm quite certain i didn't
think about that problem at all in the JSON-based timeline command :/.

i'll get the wiki/ticket counts added to the info page, but want to get
an OK from DRH before i change the commit count calculation (though my
analysis confers with yours - that the current count is not quite correct
or is correct for some other definition of 'commit').

-- 
- 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] Unintentional fork/race condition

2013-01-13 Thread j. v. d. hoff

just my 2 cents:

1.
I agree that it should be easier (or occuring even automatically?) to  
merge such random forks. the `monotone' example was given. `hg' is another  
obvious one doing that painlessly.


2.
I agree that improvement of the CLI is not given enough attention in  
comparison to the GUI and that is especially difficult (not reall  
feasible, that is) to keep track of the branch/fork/merge structure of the  
timeline when solely using the CLI. in this context: some time ago I asked  
the list whether an 'ASCII art' DAG added to the timeline could be added  
(as an option, not as default!) which looks like this in `Mercurial':


8
@  changeset:   230:ba70fc98b524
|  user:u2
|  date:Thu Dec 02 19:33:36 2010 +0100
|  summary: inclusion of joe's changes, part 3.
|
ochangeset:   229:896e4bf421cc
|\   parent:  228:b577d53d4484
| |  parent:  227:096dd5485186
| |  user:u2
| |  date:Thu Dec 02 17:43:29 2010 +0100
| |  summary: Automated merge with ssh://somehost/somefile
| o  changeset:   228:b577d53d4484
| |  parent:  226:25a0f016d4e5
| |  user:u1
| |  date:Thu Dec 02 17:15:43 2010 +0100
| |  summary: - updated fig.13
| |
o |  changeset:   227:096dd5485186
|/   user:u2
|date:Thu Dec 02 17:43:24 2010 +0100
|summary: intermediate state
|
8

I believe if such a thing were available, even militant CLI users would  
be able to keep track where they are on the graph (`hg' uses the `@' sign  
for *CURRENT*, by the way) and the reported problem would be less  
annoying/confusing. doing this is probably somewhat tedious but at least  
the logic for drawing the graph is already in place and used in the web  
GUI. so maybe it is feasible in finite time...


j.

On Sun, 13 Jan 2013 07:45:51 +0100, Matt Welland estifo...@gmail.com  
wrote:



On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp d...@sqlite.org wrote:




On Sat, Jan 12, 2013 at 6:41 PM, Matt Welland estifo...@gmail.com  
wrote:



This is with regards to the problem described here:


http://lists.fossil-scm.org:8080/pipermail/fossil-users/2008-February/60.html

We are seeing on the order of 3-5 of these a year in our heaviest hit
repos. While this may seem like no big deal the fact that it is so  
silent
is quite disruptive. The problem is that a developer working intently  
on a

problem may not notice for hours or even days that they are no longer
actually working on the main thread of development.



I contend that this points up issues with your development process, not
with Fossil.  If your developers do not notice that a fork has occurred  
for

days, then they are doing heads down programming.  They are not
maintaining situational awareness.  (
http://en.wikipedia.org/wiki/Situation_awareness)  They are fixating on
their own (small) problems and missing the big picture.  This can lead
dissatisfied customers and/or quality problems.

Situational awareness is usually studied in dynamic environments that
are safety critical, such as aviation and surgery.  Loss of situational
awareness is a leading cause of airplane crashes and medical errors.   
Loss
of situational awareness is sometimes referred to as tunnel vision.   
The
person fixates on one tiny aspect of the problem and ignores the much  
large

crisis unfolding around him.  Eastern Airlines flight 401 (
http://en.wikipedia.org/wiki/Eastern_Air_Lines_Flight_401) is a classic
example of this: All three pilots of an L-1011 where working intently  
on

a malfunctioning indicator light to the point that none of them noticed
that the plane was losing altitude until seconds before it crashed in  
the

Florida Everglades.

Though usually studied in safety critical environments, situational
awareness is applicable in any complex and dynamic problem environment,
such as a developing advanced software.  When you tell me that your
developers are intently working on one small aspect of the problem, to
the point of not noticing for several days that the trunk as forked -  
that

tells me that there are likely other far more serious problems that they
are also not noticing.  The fork is easily fixed with a merge.  The  
other
more serious problems might not have such an easy fix.  And they might  
go

undetected until your customer stumbles over them.

So, I would use the observation that forks are going undetected as a
symptom of more serious process problems in your organization, and
encourage you to seek ways of getting your developers to spend more time
heads up and looking at the big picture.

(Did you notice - situational awareness is kind of a big issue with  
me.
Fossil is my effort at building a DVCS that does a better job of  
promoting

situational awareness that the other popular VCSes out there.  I'm
constantly looking for ways to enhance Fossil to 

Re: [fossil-users] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stephan Beal
On Sun, Jan 13, 2013 at 12:58 PM, Stephan Beal sgb...@googlemail.comwrote:

 i'll get the wiki/ticket counts added to the info page, but want to get
 an OK from DRH before i change the commit count calculation (though my
 analysis confers with yours - that the current count is not quite correct
 or is correct for some other definition of 'commit').


Eeek... adding them is simple but they pose another problem: the first run
takes about 5 seconds for that query on my netbook. The second, once the OS
has cached at the filesystem level, is much faster. Before i go murdering
the performance of the info command it might make sense to add a CLI
version of the stat page, with the caveat that that will upset users who
currently enter stat as a shortcut for status (when stash was
implemented it upset me because it broke me of my st==status habit ;).

Let me think a bit about this, but i think moving this info into a 'stat'
command is the right thing to do.

-- 
- 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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff
On Sun, 13 Jan 2013 14:37:38 +0100, Stephan Beal sgb...@googlemail.com  
wrote:


On Sun, Jan 13, 2013 at 2:16 PM, j. v. d. hoff  
veedeeh...@googlemail.comwrote:



In this case this basic information would always be simply there.
otherwise time required for generating this information obviously does
scale very badly for big projects. but maybe this is too naive?



That's the question - whether that's too naive or not. My gut feeling is
that the cache could easily get out of sync, but i could be quite wrong.  
We

might also have problems with _other_ operations becoming arbitrarily
longer because of the addition of cache re-calculation.

I could even imagine

...numbers would become supported in relevant fossil commands such as
`diff', `merge', etc. this might of course be all nonsense and not in
accord with the actual design of fossil...



That's a topic i'm trying personally to stay away from because i think  
it'd

be a messy divergence from fossil's world view. That doesn't in any way


don't really know about this world view.


mean the idea is rejected, it just means i personally don't like it.


which is fine, of course. I've simply noted that in approx 5 years of `hg'  
usage (which supports, both, hashes and rev. nums) I've never ever used  
once the hash directly. rev. nums are so much easier to type and memorize.  
if they don't come at some point in the future, it's OK (since not _that_  
important), but in terms of ease of CLI use it is a disadvantage, I'd  
maintain.






looks fine. cosmetic proposal: probably left-adjusted two column
(key/value) output would be easier to read (i.e. align everything in the
value column to match the space required by the longest key name
(Duration of Project in the above output, that is) and don't wrap long
lines.



The wrapping was either my console or gmail. i tried aligning but the  
wide

variation in labels and values just looked funny to me. i'll try


not a big issue anyway.


diverging
from the /stat-derived labels and move to something more  
machine-readable,
analog to how the info command works. i've also renamed it to dbstat,  
per
your suggestion. On the dev list i've posted the question about which  
query

is correct for the commit counts (and why), so hopefully we'll hear a
definitive answer from Richard on that.

Number Of Check-ins: 4890



Number Of Files: 749






I think the _total_ number of all checkins might also be helpful since
this would be the relevant number if chronological revision numbers  
would

occur at some point in the future.



The output currently uses both calculations:

Number Of Check-ins: 4846
Number Of Files: 749 (4890 changes)


what I actually meant is number of file changes plus number of wiki  
changes + ..., i.e. the cumulative count of all date/time-tagged entries  
in the full timeline output. if there is a nomenclature problem lurking  
here, one might disambiguate via tot. number of timeline entries or  
similar but that _should_ be synonymous to
number of checkins AFAICS. anything else would at least be rather  
counter-intuitive in my view.




but i don't see how those line up, numerically speaking (more changes  
than

checkins?). Richard will be able to explain to us those two different
values and what they _really_ mean. The first one uses the calculation  
from

the /stat page and the second one uses a query against 'ci' events.

in my view, yes. or rather either use commits also for Wiki and Tickets

or use changes for `Files', too. I'd prefer checkins everywhere,
actually).



i'm currently using changes because i want to avoid any confusion with
any formal definition of commit/checkin.

Once the question regarding commit/checkin counting is clarified i'll get
this change checked in.




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff



See attached (if the list doesn't remove it), ignoring the question of
which commit count is correct for the moment.


I would exclude the headline (Repository Statistics:) from column width  
computation (so reducing the white space amount between keys and values).

otherwise I like this column-adjusted output better than the
irregular default. actually, I think several fossil commands (notably  
info and stat) could profit from the same beautification.




:-?

PS: i like the name stats better, but don't want to break anyone's
stat==status habit :/.


+1

(and `dbs' would be a nice acronym).






--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stefan Bellon
On Sun, 13 Jan, Stephan Beal wrote:

 See attached (if the list doesn't remove it), ignoring the question of
 which commit count is correct for the moment.

I'd lose the Repository Statistics: headline as well because it is
just a repetition of the command issued. A timeline command e.g. does
not start with Checkout Timeline: either.

And then I'd remove one hyphen from the wiki-page-count to
wikipage-count because the other counts just have one hyphen as
well. That makes it easier to parse for all counts - if one has to.

Apart from that, fine with me.

Greetings,
Stefan

-- 
Stefan Bellon
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff
another minor thing: to decide whether to count the revisions starting  
from 0 (offset relative to initial checkin) or from 1.


j.


On Sun, 13 Jan 2013 14:58:09 +0100, Stephan Beal sgb...@googlemail.com  
wrote:


On Sun, Jan 13, 2013 at 2:41 PM, Stephan Beal sgb...@googlemail.com  
wrote:





I hope you can take that into consideration when implementing the final
statistics command.



Yes, of course :). i appreciate your feedback.




See attached (if the list doesn't remove it), ignoring the question of
which commit count is correct for the moment.

:-?

PS: i like the name stats better, but don't want to break anyone's
stat==status habit :/.




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stephan Beal
On Sun, Jan 13, 2013 at 3:13 PM, j. v. d. hoff veedeeh...@googlemail.comwrote:

 I would exclude the headline (Repository Statistics:) from column width
 computation (so reducing the white space amount between keys and values).


i didn't use that column for width determination - i used hard tabs and let
the terminal figure it out (which means it will probably break on Windows
;). Using only 1 tab isn't cutting it, though, because server-id is too
short. i'll remove that top line, though - Stefan's argument that it is
redundant sounds good to me.

@Stefan: the argument for wikipage instead of wiki-page - i'm not
convinced that that would simplify anything, but this feature is for you
guys, so i've changed that, too.

...

i've re-done the spacing to use normal spaces instead of tabs, so it now
looks like:

stephan@tiny:~/cvs/fossil/fossil$ f dbstat
repository-size:35969024 bytes (36.0MB)
artifact-count: 19497 (stored as 5369 full text and 14128 delta blobs)
artifact-sizes: 52103 bytes average, 4993770 bytes max, 1015763428
bytes (1.0GB) total
compression-ratio:  28:1
checkin-count:  4846
file-count: 749 (4890 changes)
wikipage-count: 23 (282 changes)
ticket-count:   990 (3137 changes)
project-age:2004 days or approximately 5.49 years.
project-id: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
server-id:  c7d762ef2a202474a9d04a38050f1c789b2fc771
fossil-version: 1.25 2013-01-13 02:01:18 [a0dd51e9af] (gcc-4.7.2)
sqlite-version: 2013-01-09 11:31:17 [5774f2175c] (3.7.16)
database-stats: 35126 pages, 1024 bytes/page, 1076 free pages, UTF-8,
delete mode

(line-wrapping is the mail client)

-- 
- 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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff

looks good

On Sun, 13 Jan 2013 15:42:22 +0100, Stephan Beal sgb...@googlemail.com  
wrote:


On Sun, Jan 13, 2013 at 3:13 PM, j. v. d. hoff  
veedeeh...@googlemail.comwrote:



I would exclude the headline (Repository Statistics:) from column width
computation (so reducing the white space amount between keys and  
values).



i didn't use that column for width determination - i used hard tabs and  
let

the terminal figure it out (which means it will probably break on Windows
;). Using only 1 tab isn't cutting it, though, because server-id is too
short. i'll remove that top line, though - Stefan's argument that it is
redundant sounds good to me.

@Stefan: the argument for wikipage instead of wiki-page - i'm not
convinced that that would simplify anything, but this feature is for you
guys, so i've changed that, too.

...

i've re-done the spacing to use normal spaces instead of tabs, so it now
looks like:

stephan@tiny:~/cvs/fossil/fossil$ f dbstat
repository-size:35969024 bytes (36.0MB)
artifact-count: 19497 (stored as 5369 full text and 14128 delta  
blobs)

artifact-sizes: 52103 bytes average, 4993770 bytes max, 1015763428
bytes (1.0GB) total
compression-ratio:  28:1
checkin-count:  4846
file-count: 749 (4890 changes)
wikipage-count: 23 (282 changes)
ticket-count:   990 (3137 changes)
project-age:2004 days or approximately 5.49 years.
project-id: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
server-id:  c7d762ef2a202474a9d04a38050f1c789b2fc771
fossil-version: 1.25 2013-01-13 02:01:18 [a0dd51e9af] (gcc-4.7.2)
sqlite-version: 2013-01-09 11:31:17 [5774f2175c] (3.7.16)
database-stats: 35126 pages, 1024 bytes/page, 1076 free pages, UTF-8,
delete mode

(line-wrapping is the mail client)




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] Unintentional fork/race condition

2013-01-13 Thread Ramon Ribó
In my opinion, the solution is more simple. Instead of:

- sync
- stop if would fork
- commit
- sync

The procedure should be:

- commit
- sync
- rollback if would fork

Ramon Ribó
El 13/01/2013 13:11, Richard Hipp d...@sqlite.org va escriure:



 On Sun, Jan 13, 2013 at 1:45 AM, Matt Welland estifo...@gmail.com wrote:




 On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp d...@sqlite.org wrote:


 Curious response. Did you intend to be insulting? I'm working with a
 bunch of very smart people


 No insult intended.  It's the smart people who have the greatest tendency
 to go heads down.  I'm sorry that insult was inferred - my fault for
 sending a long and ranting post late on a Saturday night.



 who are very reluctantly learning a new tool and a different way of doing
 things and forks are very confusing when they happen in a scenario where
 they seemingly should not. We are not operating in a disconnected fashion
 here. Fossil falls somewhat short in the support of people who like to get
 their job done at the command line (about 80% of users on my team).
 Distilling from the fossil timeline command that there is a fork and how to
 fix it is not easy. It is very tiresome to have to go back to the ui to
 ensure that a fork hasn't magically appeared.


 This is the part I don't understand, apparently:  Your developers don't
 like to use the web interface to see what is happening?  One quick glance
 at the web timeline would reveal the unintentional fork.

 The Fossil web interface is intended to aid developers in keeping track of
 what other team members are doing.  Is there a reluctance among your people
 to use this interface?  Please help me to understand the source of this
 reluctance so that I can try to address it.



 Anyhow, I misunderstood the exact nature of the cause. I assumed that the
 race condition lay within the users fossil process between the time the db
 query that checked for leaf and the insertion of the new checkin data in to
 the db. That is of course incorrect. The actual cause is that the central
 database is free to receive a commit via sync after having just done a sync
 that informs the users fossil process that it is fine to commit. Something
 like the following:

 User1   User2central
 sync
 leafcheck   sync
 commit  leafcheck
 synccommit   receives delta from user1 just fine
 sync receives delta from user2 and now a fork
 exists

 As you point out below that is very difficult if not impossible to fix.
 What I think would alleviate this issue would be a check for fork creation
 at the end of the final sync. If a fork is found notify the user so it can
 be dealt with before confusion is created.


 OK.  Right now the first sync is really just a pull, and the second is
 really just a push.  But it is no big deal to change the second to a full
 sync.  Then, you think it should issue a warning if there is another open
 leaf on the same branch?

 A quick check shows that this would causes warnings every time we check
 into the Fossil trunk, as there are a few abandoned trunk leaves:

(1)  http://www.fossil-scm.org/fossil/timeline?c=4c931047ef
(2)  http://www.fossil-scm.org/fossil/timeline?c=b41feab774
(3)  http://www.fossil-scm.org/fossil/timeline?c=9503a9152e

 These leaves would have to be closed to silence the warnings.  I'm
 guessing that every long-running project would have a few abandoned trunk
 leaves like this.

 Or, maybe the warning should only complain if the fork involved two
 check-ins occurring within a small amount of time of each other?  Say, for
 example, that the warning only appears if the other leaf is within the
 previous 50 commits?



 Just to illustrate, I think monotone deals rather nicely with the natural
 but annoying creation of forks. The user is informed immediately the fork
 occurs. Then the user only has to issue mtn merge and it does the easy
 and obvious merge.


 Huh.  OK - I think I can arrange for fossil merge (with no argument) to
 merge the most recent other leaf of the current branch, if there is one,
 and fail if there is none.  Then you can simply type fossil merge from
 time to time, and if there has been a fork it will be resolved, and if
 there is no fork, you will be told and the command will be a no-op.




 With fossil I have to poll the ui to ensure I don't have a fork, if I do
 have a fork I have to browse the UI and figure out the hash id of the fork,
 do the merge and finally do a commit, manually doing what could probably be
 mostly automated.

 Contrast with git where you know when you are causing a fork because you
 do it all the time and dealing with forks is just day to day business.
 Fossil will silently fork and only by starting up the ui and digging around
 will it become apparent that there is a fork.

 In the referred to message DRH writes:

 DVCSs make it very easy to fork the tree.  To listen to
 Linus Torvalds you would think this is a 

Re: [fossil-users] Unintentional fork/race condition

2013-01-13 Thread Matt Welland
On Sun, Jan 13, 2013 at 5:10 AM, Richard Hipp d...@sqlite.org wrote:



 On Sun, Jan 13, 2013 at 1:45 AM, Matt Welland estifo...@gmail.com wrote:




 On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp d...@sqlite.org wrote:


 Curious response. Did you intend to be insulting? I'm working with a
 bunch of very smart people


 No insult intended.  It's the smart people who have the greatest tendency
 to go heads down.  I'm sorry that insult was inferred - my fault for
 sending a long and ranting post late on a Saturday night.


Ok. Thanks.


 who are very reluctantly learning a new tool and a different way of doing
 things and forks are very confusing when they happen in a scenario where
 they seemingly should not. We are not operating in a disconnected fashion
 here. Fossil falls somewhat short in the support of people who like to get
 their job done at the command line (about 80% of users on my team).
 Distilling from the fossil timeline command that there is a fork and how to
 fix it is not easy. It is very tiresome to have to go back to the ui to
 ensure that a fork hasn't magically appeared.


 This is the part I don't understand, apparently:  Your developers don't
 like to use the web interface to see what is happening?  One quick glance
 at the web timeline would reveal the unintentional fork.


These are busy repos. It sometimes takes me a minute to figure out what is
happening so I agree it is most often a quick glance but not always. I'm
not sure how to communicate the efficiency some people experience with a
cli. Some people like vi, compile, test, examine history etc. all from one
or two xterms and indeed I sometimes like this mode also. I personally find
it a minor annoyance to have to bring up the ui, possibly because on a
daily basis I'm dealing with five or more different fossil areas and
keeping track of which ui goes with which task is distracting whereas if
I'm working in an xterm with repoX then when I type in fossil timeline I
know with 100% confidence in zero time that the timeline I'm looking at is
for repoX. The ui will pop up another window that must be found in the
myriad of windows with chip layout, schematics and other fossil repo ui's
etc. already filling my desktop.


The Fossil web interface is intended to aid developers in keeping track of
what other team members are doing.  Is there a reluctance among your people
to use this interface?  Please help me to understand the source of this
reluctance so that I can try to address it.

I think the fossil ui doe a great job, it is just the nature of yet another
window to deal with that is an issue for some (I'm speculating here but
know that this is sometimes true for myself).



 Anyhow, I misunderstood the exact nature of the cause. I assumed that the
 race condition lay within the users fossil process between the time the db
 query that checked for leaf and the insertion of the new checkin data in to
 the db. That is of course incorrect. The actual cause is that the central
 database is free to receive a commit via sync after having just done a sync
 that informs the users fossil process that it is fine to commit. Something
 like the following:

 User1   User2central
 sync
 leafcheck   sync
 commit  leafcheck
 synccommit   receives delta from user1 just fine
 sync receives delta from user2 and now a fork
 exists

 As you point out below that is very difficult if not impossible to fix.
 What I think would alleviate this issue would be a check for fork creation
 at the end of the final sync. If a fork is found notify the user so it can
 be dealt with before confusion is created.


 OK.  Right now the first sync is really just a pull, and the second is
 really just a push.  But it is no big deal to change the second to a full
 sync.  Then, you think it should issue a warning if there is another open
 leaf on the same branch?

 A quick check shows that this would causes warnings every time we check
 into the Fossil trunk, as there are a few abandoned trunk leaves:

(1)  http://www.fossil-scm.org/fossil/timeline?c=4c931047ef
(2)  http://www.fossil-scm.org/fossil/timeline?c=b41feab774
(3)  http://www.fossil-scm.org/fossil/timeline?c=9503a9152e

 These leaves would have to be closed to silence the warnings.  I'm
 guessing that every long-running project would have a few abandoned trunk
 leaves like this.

 Or, maybe the warning should only complain if the fork involved two
 check-ins occurring within a small amount of time of each other?  Say, for
 example, that the warning only appears if the other leaf is within the
 previous 50 commits?


There might be some minor transition pain where a bit of clean up of old
repos would be necessary. I personally feel that keeping it simple and
encouraging a clean history is good. If you have an old fork in the repo
convert it to a branch and annotate appropriately. Using a heuristic such
as the last 50 commits is sure to 

Re: [fossil-users] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stefan Bellon
On Sun, 13 Jan, j. v. d. hoff wrote:

 (Incidentally I did already put that one into the new wiki page  
 http://www.fossil-scm.org/fossil/wiki?name=Wish+List today)

While I agree with some points on the wish list, I strongly object to
the first one. If the user insist with force to commit without a
commit message, then the tool should not try to be smart and prohibit
the commit. As long as it will not cause operational problems for the
tool itself, it is always wrong if the tool tries to be smarter than
the user. Even more so if the user explicitly stated yes, I know, but
that's what I want.

Just for example: In my case, fossil is used in an automated environment
to store certain states of files. This is completely automated. Those
commits of course could get the date/timestamp as commit message, but
that would be redundant, so why should a commit message be forced in
such automated environments? It does not make sense. Do not assume your
workflow or setup for everybody else.

If the tool does not need the information, do not enforce its presence!

Greetings,
Stefan

-- 
Stefan Bellon
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff
On Sun, 13 Jan 2013 18:48:30 +0100, Stefan Bellon sbel...@sbellon.de  
wrote:



On Sun, 13 Jan, j. v. d. hoff wrote:


(Incidentally I did already put that one into the new wiki page
http://www.fossil-scm.org/fossil/wiki?name=Wish+List today)


While I agree with some points on the wish list, I strongly object to
the first one. If the user insist with force to commit without a
commit message, then the tool should not try to be smart and prohibit
the commit. As long as it will not cause operational problems for the
tool itself, it is always wrong if the tool tries to be smarter than
the user. Even more so if the user explicitly stated yes, I know, but
that's what I want.

Just for example: In my case, fossil is used in an automated environment
to store certain states of files. This is completely automated. Those
commits of course could get the date/timestamp as commit message, but
that would be redundant, so why should a commit message be forced in
such automated environments? It does not make sense. Do not assume your
workflow or setup for everybody else.

If the tool does not need the information, do not enforce its presence!


I don't claim/believe that all points on the list will qualify for a  
majority vote. I've just collected them and put them there due to drh's  
suggestion (with some misgivings that it would cause partly too much  
noise afterwards on the list -- your mail explicitely _not_ rated as  
such, but let's see what else will come up...).


regarding the issue at hand, from my perspective, in _interactive_ use I  
_never_ want an empty commit message (nor should anybody _want_ this,  
right?), so interpretation of leaving the commit-message-editor directly  
without any edits as aborted commit (notifying the user to that extent  
automatically) is very sensible (I like this behaviour, e.g. in `hg'). but  
I simply don't like to answer a (for me) redundant question, whether I  
really want to abort or not when I _do_ decide to abort the commit and,  
therefore, leave the editor immediately again. for your use case a new  
`-f(orce)' flag for `ci' to enforce commit without ci message would sure  
achieve what you (and maybe others) want (and that would be the machine  
typing too much, not me ;-)).


making the behaviour user configurable (e.g. via `set') might be another  
idea.


anyway, I _don't_ have too strong feelings about this point.

j.



Greetings,
Stefan




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Stephan Beal
On Sun, Jan 13, 2013 at 3:52 PM, j. v. d. hoff veedeeh...@googlemail.comwrote:

 looks good


The word came down from DRH that this is the correct SQL to use for
counting commits:

  SELECT COUNT(*) from event where where type='ci';

and Richard cannot off-hand explain the 40-some-odd difference between that
and the mlink count approach (that used on /stat). This particular repo
is (AFAIK) the only one in the world which has survived literally every bug
fossil has ever had, and it's possible (but unconfirmed) that that
discrepancy is due to an ancient bug which was fixed years ago. i'll be
trying to figure that out in the coming days.

What i'm about to check in looks a tiny bit different than earlier:

stephan@tiny:~/cvs/fossil/fossil$ f dbstat
...
checkin-count:  4890
file-count: 749
wikipage-count: 24
ticket-count:   990
...

i have left out the number of changes per type for the time being so that i
can verify those/my approach for counting those (but that won't happen
tonight).

Okay, so here we go...

http://www.fossil-scm.org/index.html/info/1dd493231a

i'll look into the change-counts later on in the week.

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


Re: [fossil-users] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Eric
On Sun, 13 Jan 2013 13:17:46 +0100, j. v. d. hoff veedeeh...@googlemail.com 
wrote:
snip
 yes, fossil naming scheme is somewhat ideosyncratic `st' should be the  
 canonical name for `timeline; anyway in order not to put off svn and hg  
 users  ;-)

Idiosyncratic? I think it is beautifully simple:

When you write the entry C-function for a command, you put a comment
line like

  **   COMMAND:  cmdname

Above it. You can put more than one to give the command multiple names.
Then at build time the mkindex utility builds a constant table used to
map command names into functions.

When you type fossil xy, that table is searched for entries beginning
with xy. If there is only one, it is run, if there is more than one
fossil tells you what they are and quits.

You are suggesting making a non-unique prefix run a totally different
command. How much confusion is that going to cause?

Actually you are suggesting changing fossil to make it more like some
other program, and you know _my_ opinion of that.

In any case, it doesn't work. There is no canonical. Unless one program
is a clone of another there will not be a complete 1-1 mapping between
commands, so you can't make all the commands have the same names.

Eric
-- 
ms fnd in a lbry
___
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] Unintentional fork/race condition

2013-01-13 Thread Eric
On Sun, 13 Jan 2013 16:35:11 +0100, Ramon Ribó ram...@compassis.com wrote:
 In my opinion, the solution is more simple. Instead of:
 
 - sync
 - stop if would fork
 - commit
 - sync
 
 The procedure should be:
 
 - commit
 - sync
 - rollback if would fork

There is no rollback, an commit has been done. I suppose you mean
to reverse the commit, but you can't do that. Apart from it being a
key part of fossil that everything is immutable, you still can't do
it. Which repository do you undo the commit in, the one synced to or
the one synced from? What happens to other repositories? What if someone
else does a commit based on the one you are reversing? The only way to
deal with those is to stop fossil being distributed!

Anyway the issue is not that forks can happen (which is inevitable),
but that users should know they have happened and be able to deal
with them.

Eric
-- 
ms fnd in a lbry
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread Eric
On Sun, 13 Jan 2013 18:48:30 +0100,
Stefan Bellon sbel...@sbellon.de wrote:
snip
 Just for example: In my case, fossil is used in an automated environment
 to store certain states of files. This is completely automated.

Then you are using fossil for a purpose for which it was not designed.
Lots of people use lots of VCS's for a similar purpose, for which (as
far as I know) none of them were designed. Not going to try to change
the universe here, but...

 Those commits of course could get the date/timestamp as commit message,
 but that would be redundant, so why should a commit message be forced
 in such automated environments? It does not make sense.

Since it is automated, why not automate the same one or two word message
for all the commits? I actually do that, in spite of what I said above,
but I also have a directory with some bits of code in it which may one
day be a program that _is_ designed for that :)

 Do not assume your workflow or setup for everybody else.

But you can still say something if they are using a claw-hammer to undo
a nut.

Eric
-- 
ms fnd in a lbry
___
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] Unintentional fork/race condition

2013-01-13 Thread Eric
On Sun, 13 Jan 2013 07:48:59 +0200,
John Found johnfo...@evrocom.net wrote:
 On Sat, 12 Jan 2013 21:22:28 -0800
 Michael L. Barrow mlbar...@barrow.me wrote:
 
  
  Please stop trolling
  
 
 I am not trolling.

I am prepared to believe you but I can see how tone and content might
make people believe that.

 It is Reductio ad absurdum that proves D. Richard Hipp is wrong in
 his statement.

It isn't, and it doesn't. Your extrapolation introduces factors which
were not originally there.

 Solving technical problems by high-handed methods is wrong by definition.

It is not a technical problem. Fossil is a loosely-connected distributed
system, and what happens with forks is a consequence of that. Any
technical way of preventing them or dealing with them automatically will
make fossil something other than what it was intended to be.

The answer does lie in choosing appropriate working practices (workflow
if you like), and if making those choices ends up looking high-handed
then by all means suggest alternative working practices, and even
changes to fossil to help with them, but not changes which contradict
the basic principles of the software.

Eric
-- 
ms fnd in a lbry
___
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] `fossil info' feature request (a.k.a. wish)

2013-01-13 Thread j. v. d. hoff

On Sun, 13 Jan 2013 20:12:09 +0100, Eric e...@deptj.eu wrote:

On Sun, 13 Jan 2013 13:17:46 +0100, j. v. d. hoff  
veedeeh...@googlemail.com wrote:

snip

yes, fossil naming scheme is somewhat ideosyncratic `st' should be the
canonical name for `timeline; anyway in order not to put off svn and  
hg

users  ;-)


Idiosyncratic? I think it is beautifully simple:

When you write the entry C-function for a command, you put a comment
line like

  **   COMMAND:  cmdname

Above it. You can put more than one to give the command multiple names.
Then at build time the mkindex utility builds a constant table used to
map command names into functions.

When you type fossil xy, that table is searched for entries beginning
with xy. If there is only one, it is run, if there is more than one
fossil tells you what they are and quits.

You are suggesting making a non-unique prefix run a totally different


no I don't -- saw the smiley?


command. How much confusion is that going to cause?

Actually you are suggesting changing fossil to make it more like some
other program, and you know _my_ opinion of that.

In any case, it doesn't work. There is no canonical. Unless one program
is a clone of another there will not be a complete 1-1 mapping between
commands, so you can't make all the commands have the same names.

Eric



--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
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] Unintentional fork/race condition

2013-01-13 Thread Eric Junkermann
On Sun, 13 Jan 2013 20:36:50 +0100, Ramon Ribó ram...@compassis.com wrote:
 There is no rollback, an commit has been done. I suppose you mean
 to reverse the commit
 
 I know it is not there. This is exactly the reason for me to write this
 email.

Sorry for being less than clear - I mean that a rollback is not
possible, that is what the rest of my message was about.

Your extra detail (not quoted) does not change this.

eric
-- 
ms fnd in a lbry
___
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] Unintentional fork/race condition

2013-01-13 Thread Richard Hipp
On Sun, Jan 13, 2013 at 7:10 AM, Richard Hipp d...@sqlite.org wrote:


 http://chronicleoutdoors.com/wp-content/gallery/cougar-photo/mountainlion.jpg

 I'll see what I can do about enhancing Fossil with an approaching puma
 warning (warnings that a fork has occurred) and a shoot puma with sidearm
 command (fossil merge with no argument).


Latest Fossil on trunk contains two new features:

(1) Typing just fossil merge without a version argument will attempt to
merge any forks that exist on the current trunk.  No need to go looking up
the version number of the fork - Fossil will figure it out automatically.

(2) After each commit in auto-sync mode, Fossil now does both a push and a
pull.  (Formerly it only did the push.)  The extra pull means that if a
fork occurred due to a race, it will be detected and a warning message will
be printed.


-- 
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


Re: [fossil-users] Unintentional fork/race condition

2013-01-13 Thread Matt Welland
On Sun, Jan 13, 2013 at 6:58 PM, Richard Hipp d...@sqlite.org wrote:


 On Sun, Jan 13, 2013 at 7:10 AM, Richard Hipp d...@sqlite.org wrote:


 http://chronicleoutdoors.com/wp-content/gallery/cougar-photo/mountainlion.jpg


 I'll see what I can do about enhancing Fossil with an approaching puma
 warning (warnings that a fork has occurred) and a shoot puma with sidearm
 command (fossil merge with no argument).


 Latest Fossil on trunk contains two new features:

 (1) Typing just fossil merge without a version argument will attempt to
 merge any forks that exist on the current trunk.  No need to go looking up
 the version number of the fork - Fossil will figure it out automatically.

 (2) After each commit in auto-sync mode, Fossil now does both a push and a
 pull.  (Formerly it only did the push.)  The extra pull means that if a
 fork occurred due to a race, it will be detected and a warning message will
 be printed.


Both new features seem to work well for me. Thanks!


 --
 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


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