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

2013-01-13 Thread Matt Welland
On Sun, Jan 13, 2013 at 6:58 PM, Richard Hipp  wrote:

>
> On Sun, Jan 13, 2013 at 7:10 AM, Richard Hipp  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


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

2013-01-13 Thread Richard Hipp
On Sun, Jan 13, 2013 at 7:10 AM, Richard Hipp  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 Eric Junkermann
On Sun, 13 Jan 2013 20:36:50 +0100, Ramon Ribó  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] `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  wrote:

On Sun, 13 Jan 2013 13:17:46 +0100, "j. v. d. hoff"  
 wrote:



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 Ramon Ribó
>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.

My proposal would of course require some kind of rollback or undo for the
commit that would be automatically executed when detecting the possible
fork and after having canceled the synchronization.

If someone needs more details:

- check that local repository would not fork
- write somewhere the tip name
- commit
- sync with a precondition: if tip of the remote repository is not the same
than tip of the local repository, abort synchronization. In this latter
case, rollback or undo the commit

RR
El 13/01/2013 20:12, "Eric"  va escriure:

> On Sun, 13 Jan 2013 16:35:11 +0100, Ramon Ribó 
> 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
>
>
___
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  wrote:
> On Sat, 12 Jan 2013 21:22:28 -0800
> "Michael L. Barrow"  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 Eric
On Sun, 13 Jan 2013 18:48:30 +0100,
Stefan Bellon  wrote:

> 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 16:35:11 +0100, Ramon Ribó  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 13:17:46 +0100, "j. v. d. hoff"  
wrote:

> 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] `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 wrote:

> 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 j. v. d. hoff
On Sun, 13 Jan 2013 18:48:30 +0100, Stefan Bellon   
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 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] Unintentional fork/race condition

2013-01-13 Thread Matt Welland
On Sun, Jan 13, 2013 at 5:10 AM, Richard Hipp  wrote:

>
>
> On Sun, Jan 13, 2013 at 1:45 AM, Matt Welland  wrote:
>
>>
>>
>>
>> On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp  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 

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"  va escriure:

>
>
> On Sun, Jan 13, 2013 at 1:45 AM, Matt Welland  wrote:
>
>>
>>
>>
>> On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp  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

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


On Sun, Jan 13, 2013 at 3:13 PM, j. v. d. hoff  
wrote:



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] `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 wrote:

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


On Sun, Jan 13, 2013 at 2:41 PM, Stephan Beal   
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 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



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 j. v. d. hoff
On Sun, 13 Jan 2013 14:37:38 +0100, Stephan Beal   
wrote:


On Sun, Jan 13, 2013 at 2:16 PM, j. v. d. hoff  
wrote:



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 Stephan Beal
On Sun, Jan 13, 2013 at 2:41 PM, Stephan Beal  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 :/.

-- 
- 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:21:23 +0100, Stefan Bellon   
wrote:



On Sun, 13 Jan, Stephan Beal wrote:


stephan@tiny:~/cvs/fossil/fossil$ f stat
Repository Statistics:
Repository Size: 35969024 bytes (36.0MB)
Number Of Artifacts:  19497 (stored as 5369 full text and 14128 delta
blobs) Uncompressed Artifact Size: 52103 bytes average, 4993770 bytes
max, 1015763428 bytes (1.0GB) total
Compression Ratio: 28:1
Number Of Check-ins: 4890
Number Of Files: 749
Number Of Wiki Pages: 23 (282 changes)
Number Of Tickets: 990 (3137 changes)
Duration Of Project: 2003 days or approximately 5.48 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


I like this idea a lot!

However I beg for more thinking about the names used in the output. The
one thing about fossil I dislike most is the inconsistent naming of
switches (double-minus vs. single-minus vs. short) as well as the


+1

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



inconsistent output of its commands. While this may not be that
annoying when using the web it is when using the command line and it
is even more when doing script automation using the command line
interface.

For example the output of "fossil info" (and "status", etc.) is in style

project-name: ...
project-code: ...

whereas after a commit you get the following response

New_Version: ...

There's a difference in casing and usage of hyphen versus underscore.
When I started using fossil I was expecting something like

checkout: ...

as response from the "commit" command to be in stylistic and
terminology sync with the other outputs (especially "status").

Regarding the new "stat" (or "stats"?) command I'd very much like to
see it matching the already existing output styles rather than invent a
new one:

repository-size: ...
artifact-count: ...
compression-ratio: ...
checkin-count: ...
file-count: ...
wiki-count: ...
ticket-count: ...
project-uptime: ...
project-id: ...
server-id: ...
fossil-version: ...
sqlite-version: ...
database-stats: ...

Or something similar to that (I'm not suggesting the final names here,
just the style to use).

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

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 2:21 PM, Stefan Bellon  wrote:

> one thing about fossil I dislike most is the inconsistent naming of
> switches (double-minus vs. single-minus vs. short)


BTW: fossil treats -x and --x equivalently. Which one you use is a matter
of personal preference.



> as well as the
> inconsistent output of its commands.


That's largely a side effect of so many people having added them :/.


> Regarding the new "stat" (or "stats"?) command I'd very much like to
> see it matching the already existing output styles rather than invent a
> new one:
>

The current draft is just copy/pasted from the /stat page implementation. i
plan on switching to a-b-c notation, like you show here:


> repository-size: ...
> artifact-count: ...
> ...Or something similar to that (I'm not suggesting the final names here,
> just the style to use).
>

and the JSON API provides one way to get at those values in a scriptable
format (fine for any language supporting JSON, but not shell scripts).


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

Yes, of course :). i appreciate your 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


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

2013-01-13 Thread Stephan Beal
On Sun, Jan 13, 2013 at 2:16 PM, j. v. d. hoff wrote:

> 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
mean the idea is rejected, it just means i personally don't like it.


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

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

-- 
- 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 Stefan Bellon
On Sun, 13 Jan, Stephan Beal wrote:

> stephan@tiny:~/cvs/fossil/fossil$ f stat
> Repository Statistics:
> Repository Size: 35969024 bytes (36.0MB)
> Number Of Artifacts:  19497 (stored as 5369 full text and 14128 delta
> blobs) Uncompressed Artifact Size: 52103 bytes average, 4993770 bytes
> max, 1015763428 bytes (1.0GB) total
> Compression Ratio: 28:1
> Number Of Check-ins: 4890
> Number Of Files: 749
> Number Of Wiki Pages: 23 (282 changes)
> Number Of Tickets: 990 (3137 changes)
> Duration Of Project: 2003 days or approximately 5.48 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

I like this idea a lot!

However I beg for more thinking about the names used in the output. The
one thing about fossil I dislike most is the inconsistent naming of
switches (double-minus vs. single-minus vs. short) as well as the
inconsistent output of its commands. While this may not be that
annoying when using the web it is when using the command line and it
is even more when doing script automation using the command line
interface.

For example the output of "fossil info" (and "status", etc.) is in style

project-name: ...
project-code: ...

whereas after a commit you get the following response

New_Version: ...

There's a difference in casing and usage of hyphen versus underscore.
When I started using fossil I was expecting something like

checkout: ...

as response from the "commit" command to be in stylistic and
terminology sync with the other outputs (especially "status").

Regarding the new "stat" (or "stats"?) command I'd very much like to
see it matching the already existing output styles rather than invent a
new one:

repository-size: ...
artifact-count: ...
compression-ratio: ...
checkin-count: ...
file-count: ...
wiki-count: ...
ticket-count: ...
project-uptime: ...
project-id: ...
server-id: ...
fossil-version: ...
sqlite-version: ...
database-stats: ...

Or something similar to that (I'm not suggesting the final names here,
just the style to use).

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

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 13:38:45 +0100, Stephan Beal   
wrote:


On Sun, Jan 13, 2013 at 1:20 PM, j. v. d. hoff  
wrote:



why is this?



i can't say with certainty - my insight into sqlite's internals is very
limited.


mine is zero.





I do of course see this delay when grepping through the whole timeline
(and my initial wish was motivated by the hope that the relevant info is
"just there" in the database), but I would have thought the relevant
statistics is already in the database. and if not so: why not at a small
table containing these statistics?



As a general rule (perhaps not consciously) fossil doesn't cache what it
can calculate. There are a few instances where it builds an internal temp
table as a form of cache, but those are few and far between. We don't
(yet?) have a generic mechanism/API for caching in fossil. For this
particular calculation, it would be easy for the cache to get out of sync
if someone adds a feature which modifies the values it depends on.


I was actually thinking about the possibility of adding/augmenting a  
suitable table either in the repo itself or in .fslckout (the latter  
probably is more reasonable?), which is brought up-to-date with each new  
commit/pull/update/sync of the repo (that is maintain a few  
autoincrementing counters, basically).

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?


I could even imagine
that this (new?) table could also hold two associative array where the  
keys(values) are the SHA1 hashes and the values(keys) the chronological  
revision number if such rev. numbers cannot be fitted easily in the real  
machinery. such arrays could then be queried to get translate between rev.  
nums and SHA1 hashes if rel. rev.
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...




Here's a first draft, basically the same as the /stat page, reformatted  
for

the console, using the "other" commit count calculation, and adding
wiki/ticket change counts:

stephan@tiny:~/cvs/fossil/fossil$ f stat --brief
Repository Statistics:
Repository Size: 35969024 bytes (36.0MB)
Duration Of Project: 2003 days or approximately 5.48 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


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.





stephan@tiny:~/cvs/fossil/fossil$ f stat
Repository Statistics:
Repository Size: 35969024 bytes (36.0MB)
Number Of Artifacts:  19497 (stored as 5369 full text and 14128 delta  
blobs)

Uncompressed Artifact Size: 52103 bytes average, 4993770 bytes max,
1015763428 bytes (1.0GB) total
Compression Ratio: 28:1
Number Of Check-ins: 4890
Number Of Files: 749
Number Of Wiki Pages: 23 (282 changes)
Number Of Tickets: 990 (3137 changes)
Duration Of Project: 2003 days or approximately 5.48 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



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 "brief" flag removes any calculations which tend to grow with the  
size

of the repo - basically anything which requires a non-O(1) query.

i should probably(?) change:

Number Of Check-ins: 4890
Number Of Files: 749

to:
Number Of Files: 749 (4890 commits)


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


j.



:-?




--
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 1:20 PM, j. v. d. hoff wrote:

> why is this?


i can't say with certainty - my insight into sqlite's internals is very
limited.


> I do of course see this delay when grepping through the whole timeline
> (and my initial wish was motivated by the hope that the relevant info is
> "just there" in the database), but I would have thought the relevant
> statistics is already in the database. and if not so: why not at a small
> table containing these statistics?


As a general rule (perhaps not consciously) fossil doesn't cache what it
can calculate. There are a few instances where it builds an internal temp
table as a form of cache, but those are few and far between. We don't
(yet?) have a generic mechanism/API for caching in fossil. For this
particular calculation, it would be easy for the cache to get out of sync
if someone adds a feature which modifies the values it depends on.

Here's a first draft, basically the same as the /stat page, reformatted for
the console, using the "other" commit count calculation, and adding
wiki/ticket change counts:

stephan@tiny:~/cvs/fossil/fossil$ f stat --brief
Repository Statistics:
Repository Size: 35969024 bytes (36.0MB)
Duration Of Project: 2003 days or approximately 5.48 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


stephan@tiny:~/cvs/fossil/fossil$ f stat
Repository Statistics:
Repository Size: 35969024 bytes (36.0MB)
Number Of Artifacts:  19497 (stored as 5369 full text and 14128 delta blobs)
Uncompressed Artifact Size: 52103 bytes average, 4993770 bytes max,
1015763428 bytes (1.0GB) total
Compression Ratio: 28:1
Number Of Check-ins: 4890
Number Of Files: 749
Number Of Wiki Pages: 23 (282 changes)
Number Of Tickets: 990 (3137 changes)
Duration Of Project: 2003 days or approximately 5.48 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


The "brief" flag removes any calculations which tend to grow with the size
of the repo - basically anything which requires a non-O(1) query.

i should probably(?) change:

Number Of Check-ins: 4890
Number Of Files: 749

to:
Number Of Files: 749 (4890 commits)

:-?

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

uuhps, hit the send buttom to early:

On Sun, 13 Jan 2013 13:06:25 +0100, Stephan Beal   
wrote:


On Sun, Jan 13, 2013 at 12:58 PM, Stephan Beal  
wrote:


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


why is this? I do of course see this delay when grepping through the whole  
timeline (and my initial wish was motivated by the hope that the relevant  
info is "just there" in the database), but I would have thought the  
relevant statistics is already in the database. and if not so: why not at  
a small table containing these statistics?



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.




--
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
On Sun, 13 Jan 2013 13:06:25 +0100, Stephan Beal   
wrote:


On Sun, Jan 13, 2013 at 12:58 PM, Stephan Beal  
wrote:


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


maybe call it 'dbstat' or whatever in order to avoid the naming collision.

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  
;).


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




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




--
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 Richard Hipp
On Sun, Jan 13, 2013 at 1:45 AM, Matt Welland  wrote:

>
>
>
> On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp  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 good thing.  But
> experience suggests otherwise.
>
> I still mostly agree with this, but requiring that every developer poll
> the database for forks or risk confusion makes me think that the git
> approach is perhaps not so crazy after all.

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

2013-01-13 Thread j. v. d. hoff
On Sun, 13 Jan 2013 12:58:10 +0100, Stephan Beal   
wrote:



On Sun, Jan 13, 2013 at 12:43 PM, j. v. d. hoff
wrote:

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.


ah! bug report: `fossil help timeline' does not say anything about  
existence of a `g' type (and further?) types, although it accepts the flag  
(and reports	287

entries in the present example).



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


well, I'm not a CS guy: I would catch the `0' immediately after parsing  
input and replace it by {some_rediculously_huge_number} just as if I had
entered the huge number in the first place. this would work for the rest  
of the lifetime of the universe, probably.



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


of course.


analysis confers with yours - that the current count is not quite correct
or is "correct for some other definition of 'commit'").


which then would seemingly not be in accord with what a user is wanting to  
know (namely the number of corresponding timeline entries, right?


many thanks for addressing this issue,

j.






--
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:58 PM, Stephan Beal wrote:

> 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] 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   
wrote:



On Sat, Jan 12, 2013 at 5:31 PM, Richard Hipp  wrote:




On Sat, Jan 12, 2013 at 6:41 PM, Matt Welland   
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 promote better  
situational

awareness.

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

> 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] `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   
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  
wrote:


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

On Fri, Jan 11, 2013 at 9:04 PM, j. v. d. hoff wrote:

> 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