Re: [fossil-users] [sqlite] Mailing list shutting down...

2018-06-17 Thread Olivier Mascia
> Le 14 juin 2018 à 22:47, Warren Young  a écrit :
> 
>> having to have browser tabs open for dozens of web forums
> 
> I bookmark all of the sites I need to go to regularly and place them in a 
> folder in my browser’s bookmark bar so that I can open them all at once with 
> a Cmd- or Ctrl-Click on the folder.  As I read each forum, I close that tab.
> 
> I actually keep two such folders, “Daily” and “Weekly,” suggesting my 
> visiting frequency, which is set by how often I expect interesting content to 
> appear.

I have a similar routine, but does so all within my email application, which I 
find much more effective for the task.  I'm happy you found what works for you. 
It just doesn't match my preferences, but that is OK and increases cultural 
richness.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] [sqlite] Mailing list shutting down...

2018-06-17 Thread Olivier Mascia
> Le 14 juin 2018 à 22:30, Thomas  a écrit :
> 
> Web forums are much more superior than mailing lists, in any possible 
> direction.
> There's nothing a mailing list can provide a forum can't, since it doesn't 
> exclude email notifications.
> However, there's loads of benefits a forum provides a mailing list can't 
> catch up with.
> That's the reason why mailing lists are disappearing.

I respectfully don't agree.

Web forums truly have the advantage of being an archive of previous 
conversations, making it easy for new subscribers to browse or search and 
partially read previous content at first.  There are a number of third-parties 
aggregators that do the same for mailing-lists, but indeed such an archive run 
by the mailing-list owners themselves is probably superior if it can at the 
same time be used by web forums lovers to read and participate in the 
conversation group.

There is nothing right in trying to persuade people that one's idea is 
everybody's wish and best for them all.  People of a certain age know that 
History, as well as on a much less tragic way, computer industry, has too many 
examples.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] [sqlite] Mailing list shutting down...

2018-06-17 Thread Olivier Mascia
> Le 14 juin 2018 à 22:23, Thomas  a écrit :
> 
>> Mailing list messages are easily filtered.
>> I have one mailbox for each mailing list I subscribe to, and I read through 
>> the messages in list order, which makes it easy to mentally switch gears 
>> from one project to the next.
> 
> Most people only have one mailbox. I presume you're referring to folders.
> 
> 
>> If one project gets out of hand for a while, I can mark only that one 
>> mailbox as “read” without declaring email bankruptcy on all my other email.
> 
> Forum software offers the very same functionality but that's not the direct 
> purpose of it. In a mailing list you're either "in" or "out". A forum 
> provides all possible options.

I routinely follow and participate in about 18 mailing-lists. They're all 
conveniently aggregated in folders, which is done automatically by rules 
applied by my IMAP mail server upon arrival.That's comfortable and I have 
all of it through a single user interface: my email reader.  I can easily 
full-text search on a folder, some or all of them. With a decent email reader 
and a mailbox managed by a decent, standard compliant, IMAP server, these 
actions are effective (server-side filtering for instance). I can also set 
expiration rules to automatically purge older messages, depending on the folder.

I can't even imagine myself finding the time and will to visit about 12 to 15 
different URLs, user interfaces, to browse and read what might interest me. And 
then face as much different interfaces to reply conveniently.

The right solution to please every wishes is to have a perfectly integrated 
dual-interface system where the mailing-list and the webforum is *one*. 
Displaying, encouraging proper threading on the webforum, respectfully matching 
the email threading. And reciprocal. Such that it wouldn't make any difference 
if I post per email, reply/quote per email or through the webforum. I'd be free 
to ignore the existence of the webforum as much as you could ignore it is a 
mailing list at the same time. Each subscriber electing to have the content 
delivery additionally per email, or not.

Any webforum solution with an email notification mechanism in the style "hey 
someone just posted a reply" or "there have been 122 posts since your last 
visit" is useless to me.  This is worse than not getting email at all: it 
pollutes the mailbox with contentless and countless reminders, yet doesn't 
solve the time-consuming issue to having to pull information from one webforum 
at a time, using all their different user interfaces.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 with IPv6 support on Windows XP

2018-01-06 Thread Olivier Mascia
> Le 5 janv. 2018 à 18:03, Florian Balmer <florian.bal...@gmail.com> a écrit :
> 
>> You might then enjoy a fresh build out of trunk.
> 
> Goes off like a rocket, thanks for the nice work!
> 
> Also, using `GetStdHandle(STD_INPUT_HANDLE)!=NULL' to test whether or
> not running in a console session is clever, my proposed solution was
> to check for the `ui' and `server' commands.

Glad you like it.
-You- quickly identified the culprit (StartServiceCtrlDispatcherW out of the 
context of a Service run), which at least on XP has a lengthly side-effect.
:)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 with IPv6 support on Windows XP

2018-01-05 Thread Olivier Mascia
> Le 5 janv. 2018 à 16:47, Florian Balmer <florian.bal...@gmail.com> a écrit :
> 
> Given the portability of Fossil, I was happy it
> worked on Windows XP, but waiting 15 seconds for `fossil ui' cools
> down my joy a little bit ;-)

You might then enjoy a fresh build out of trunk.
:)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 with IPv6 support on Windows XP

2018-01-05 Thread Olivier Mascia
> Le 5 janv. 2018 à 15:43, Thomas Schnurrenberger <t...@gmx.net> a écrit :
> 
> On 03.01.2018 23:33, Florian Balmer wrote:
>> The startup delay for `fossil ui' and `fossil server' on Windows XP is
>> more obvious than possibly sluggish browser navigation, which I
>> *think* is due to waiting for StartServiceCtrlDispatcherW. This could
>> be cut down by skipping the call to StartServiceCtrlDispatcherW for
>> the `ui' and `server' commands, as Fossil always runs in a console
>> session, and not as a service, in these cases.
>> 
> I measured the time it takes to call StartServiceCtrlDispatcherW on my
> 8 year old Windows 7 64bit box: roughly 600 microseconds, I don't think
> this is noticeable!

But on XP the delay is 'intolerable' rather than unnoticeable. :)

A small patch for that is included along a larger IPv4/IPv6 patch I submitted 
today.
I see Richard put it on trunk (see [e506ebb764]) minutes ago.

Especially those of you using Windows XP would help by building from that code 
and see how it goes for them.
It looks good, and does not require anymore to install IPv6 support (command 
'ipv6 install') on Windows XP.  The solution is IPv4/IPv6 agnostic. If at least 
one of both protocols are useable, the software should work nicely.

As I'm responsible for asking for this support and did a fair part of that 
coding, I'll stay alert on issues that would come out, in order to quickly 
help, should it happen.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] zStopperFile / main.c / win32_http_server

2018-01-05 Thread Olivier Mascia
Dear,

There is a mechanism related to win32_http_server() based on an optional 
filename (find_option("stopper", 0, 1)) which starts a thread, checking every 
second the presence of that file and if found triggers the stop of the http 
server feature.

I don't get the point of this.  It isn't needed nor used when running as a 
service (NULL passed for this parameter), only available when running as 
command-line (server or ui), and it looks like by default that option is 
undefined.  Yet I have not seen any issue stopping the process using ctrl-c.  
Why would sometimes a file used a semaphore be needed to trigger the 
termination of the http serving feature?

There must be something I didn't understand or see.  Or this is a left-over 
from something else.  Would someone have an insider view on the matter?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 with IPv6 support on Windows XP

2018-01-03 Thread Olivier Mascia
t back to normal for 
Windows XP users, provided they agree to run once and for all "ipv6 install" to 
add IPv6 protocol support to their system.

Open for discussion, of course, but please first test with [723dedac] along the 
above one line change patch.

On my Windows XP test VM which happen to be XP Professional SP3, it works and 
looks just fine (provided you have installed some other browser than the stock 
IE of course).

Depending on return from people, I will happily spend more time offering our 
community a more complex / complete solution, that wouldn't impact in any way 
Windows XP users, including retiring the need to add IPv6 protocol.  Though I 
think that is probably not needed.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] pragma journal_mode=wal

2018-01-03 Thread Olivier Mascia
> Le 3 janv. 2018 à 13:03, Olivier Mascia <o...@integral.be> a écrit :
> 
> Is the page size 8K, instead of SQLite current default of 4K which Fossil 
> preserves on a "fossil new" for instance, also a generally 
> preferred/recommended configuration for Fossil repositories, or an ad-hoc 
> setting for this specific repository?

Along the same line... I see "fossil new" uses the default SQLite page size of 
4K.
Though "fossil clone http://www.fossil-scm.org/ fossil.fossil" do reproduce 
locally the 8K page size from its source.

What other technical settings of a cloned repository are implicitly preserved 
to its clones?
(The journal_mode=WAL is not, and I understand why it is so).

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] pragma journal_mode=wal

2018-01-03 Thread Olivier Mascia
> Le 3 janv. 2018 à 12:57, Richard Hipp <d...@sqlite.org> a écrit :
> 
> WAL-mode is preferred.

Thanks!

> If you visit https://www.fossil-scm.org/fossil/stat and look at the
> end of the "Database Stats:" line, you'll see that the canonical
> Fossil repo runs in WAL mode.

Is the page size 8K, instead of SQLite current default of 4K which Fossil 
preserves on a "fossil new" for instance, also a generally 
preferred/recommended configuration for Fossil repositories, or an ad-hoc 
setting for this specific repository?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] pragma journal_mode=wal

2018-01-03 Thread Olivier Mascia
Dear,

Assuming a main repository only accessed through HTTP for clone, push, pull or 
through its web interface... Would you see a reason for not switching it to WAL 
mode?

Should it be avoided for a well-known reason in that restricted configuration?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Fossil with IPv6 support on Windows XP

2018-01-02 Thread Olivier Mascia
Dear,

I could finally re-install a VM with a plain old stock "Windows XP with Service 
Pack 3", to re-run a series of tests, because I had some fears.  Here are some 
findings for you to consider.

Out of fresh install, IPv6 is not setup. So fossil ui and fossil server will 
both fail listening on a socket. That is expected.  Actions where fossil acts 
as a client (fossil clone/push/pull for instance) will work correctly though.

On Windows XP, you have to run the command "ipv6 install" to add the protocol 
to the stack (much simpler than through the GUI).  A reboot is NOT required (as 
incredible as it looks).

After that, again, fossil as a client (fossil clone/push/pull) will work 
correctly this time either to an IPv4 or IPv6 target.

Though, fossil ui will fail with "unable to open listening socket", while 
fossil server will succeed.

The root culprit is here: 
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sag_ip_v6_imp_config_items.mspx?mfr=true

in the "Special addresses" paragraph:
"The IPv6 protocol for Windows (XP) does not support the use of IPv4-mapped 
addresses."

As implementing a dual-stack listening socket implies IPv4-mapped addresses, 
this explains the problem. It could be solved by modifying fossil server/ui to 
listen on two distinct sockets (one pure IPv4 and one pure IPv6). That would 
also work on all other Windows versions.

I think this is not a very useful complication.  Anyone still requiring to use 
fossil on such archeologic thing as Windows XP won't have any specific issue 
with fossil, except the requirement to run fossil server instead of fossil ui 
before accessing the content through http://localhost (that will work nicely).  
It just kills the prospect of setting up a fossil server (on Windows XP only) 
for generic access from both IPv4 and IPv6 clients.  I suppose that is a small 
limitation people can live with, seeing, if I'm not mistaken, that fossil 
doesn't yet support IPv6 at all on unixes.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Login bug (and fix) with trunk since added IPv6 support on Windows

2018-01-02 Thread Olivier Mascia
I have discovered a bug this morning on Windows using trunk as of [21d5038fd0]: 
the login mechanism is broken, because at some point it relies on the IP 
address being in the cookie, but the WSAAddressToString() Windows function 
which had to be used in winhttp.c for backward compatibility down to XP also 
outputs the port number. In addition, facing an IPv6 address, let's say ::1 it 
creates a string as [::1]:12345 (12345 being the port in this sample).  This 
breaks the login mechanism.

Here is an easy fix based on [21d5038fd0], tested with msvc 2017 and MinGW.
It works by zeroing the port number of the remote address before converting to 
string. With port set to 0, WSAAddressToString stops appending the port number 
to the string.

So ::1 stays ::1 and not [::1]:12345

The login mechanism works again after this.

Index: src/winhttp.c
==
--- src/winhttp.c
+++ src/winhttp.c
@@ -190,10 +190,11 @@
   /*
   ** The repository name is only needed if there was no open checkout.  This
   ** is designed to allow the open checkout for the interactive user to work
   ** with the local Fossil server started via the "ui" command.
   */
+  p->addr.sin6_port = 0;
   if( WSAAddressToStringA((SOCKADDR*)>addr, sizeof(p->addr),
   NULL, zIp, )!=0 ){
 zIp[0] = 0;
   }
   if( (p->flags & HTTP_SERVER_HAD_CHECKOUT)==0 ){
@@ -277,10 +278,11 @@
 if( got<=0 ) break;
 fwrite(zHdr, 1, got, out);
 wanted += got;
   }
   assert( g.zRepositoryName && g.zRepositoryName[0] );
+  p->addr.sin6_port = 0;
   if (WSAAddressToStringA((SOCKADDR*)>addr, sizeof(p->addr),
   NULL, zIp, )!=0){
 zIp[0] = 0;
   }
   sqlite3_snprintf(sizeof(zCmd), zCmd,


-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] How to cleanup two leafs on private branch?

2018-01-01 Thread Olivier Mascia
> Le 2 janv. 2018 à 00:11, Olivier Mascia <o...@integral.be> a écrit :
> 
>> Run "fossil ui".  Find the leaf you want to close.  Click on the
>> "Edit" link.  Select "Leaf Closure", followed by "Preview" and
>> "Submit".
> 
> I guess I played fool or broke something on this configuration. I have no 
> Edit link.  Other Links only shows: manifest | tags.

Login issue.  Did not take note of the password automatically set on my default 
user upon cloning the repository.  Learned the lesson :)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Building fossil on Windows using MinGW

2018-01-01 Thread Olivier Mascia
Just sharing my findings, if it is useful to anyone.

I was looking for an easy way to sort my path setting up some version of MinGW 
to build fossil trunk (for 32 bits) on Windows.  I needed it to get a 32 bits 
build suitable for tests on Windows XP.  The build environment is Server 2016, 
which for this purpose is Windows 10 alike.  I could not use my Visual Studio 
2017, because that requires installing an optionally toolset pack (which I 
can't for obscure internal policies reasons).  That optional toolset 
specifically targets Windows XP compatibility (the default up-to-date toolset 
of Visual Studio 2017 produces executables that cannot run on Windows XP).

There are MinGW and MinGW-w64 which are two distinct projects.
Apparently the first one is older and limited to 32 bits (I may be wrong on 
this).
The other one is much more up to date, targeting both 32 and 64 bits but I 
haven't found a way to complete my setup satisfactorily.
So using http://www.mingw.org, I knew I would end up with an older setup but 
suited to the task.

## My steps to setup MinGW.

Follow the Downloads link from the top bar, leading you to 
https://sourceforge.net/projects/mingw/files/
From the Installer folder, download and run mingw-get-setup.exe
Following the steps of the installer (I only opted out from links on the 
desktop), you end up with a GUI to manage your packages. From the Basic Setup 
node I only selected 'mingw-developer-toolkit', 'mingw32-base' and 'msys-base'. 
Then hit Apply.  A few minutes later, it is done.

## My steps to set myself ready to compile fossil.

Start a windows command prompt.
Run C:\MinGW\msys\1.0\msys.bat to open up another prompt with a sh prompt.
Ended up in my home directory which happen to read '/home/Olivier' (pwd) and 
that actually is C:\MinGW\msys\1.0\home\Olivier.

## Building fossil

Assuming some fossil.exe is already in your windows path (which is easy to fix 
downloading a pre-built binary), I did nothing more than what I expected:

$ mkdir fossil
$ cd fossil
$ fossil clone http://www.fossil-scm.org/ fossil.fossil
$ fossil open fossil.fossil
$ make win/Makefile.mingw

And voilà:

$ fossil version -v
This is fossil version 2.5 [21d5038fd0] 2018-01-01 18:56:19 UTC
Compiled on Jan  2 2018 00:02:38 using mingw32-501L-gcc-6.3.0 (32-bit)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] How to cleanup two leafs on private branch?

2018-01-01 Thread Olivier Mascia
> Le 1 janv. 2018 à 23:55, Richard Hipp <d...@sqlite.org> a écrit :
> 
> On 1/1/18, Olivier Mascia <o...@integral.be> wrote:
>> I just would like to 'close' those leafs
> 
> Run "fossil ui".  Find the leaf you want to close.  Click on the
> "Edit" link.  Select "Leaf Closure", followed by "Preview" and
> "Submit".

I guess I played fool or broke something on this configuration. I have no Edit 
link.  Other Links only shows: manifest | tags.
I'll trash it all (that was only clone of http://www.fossil-scm.org/) and 
restart testing with more attention to details.
Thanks!
-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] How to cleanup two leafs on private branch?

2018-01-01 Thread Olivier Mascia
Dear,

Still learning Fossil.  Ended up after various experiments with two leafs on my 
private branch.
Something like:

WARNING: multiple open leaf check-ins on private:
  (1) 2018-01-01 17:21:25 [cf17bd1315] (current)
  (2) 2017-12-31 12:49:25 [6e96981da8]

There is really nothing wrong. I just would like to 'close' those leafs or the 
whole private branch and re-use it later for other purposes. I'm learning so 
will probably find my way within 'some time'.  Would you have a hint for me?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] _WIN32 IPv6/IPv4 fossil server / ui support

2017-12-31 Thread Olivier Mascia
> Le 1 janv. 2018 à 01:20, The Tick <the.t...@gmx.com> a écrit :
> 
>> Could you lend me pointers on which MinGW version to get (and from where) so 
>> I can have a similar setup as yours?
>> I didn't used MinGW these last years (though did in the past).
>> Just visited www.mingw.org, but it looks like the pointers to download there 
>> are severely outdated (2013?).
>> Is this the right current MinGW project?
>> 
> Don't know if this would be helpful but I've been using MSYS2 -- that project 
> is kept up-to-date with their pacman tool and they have both a 32- and 64-bit 
> gcc. There is also a mingw flavored gcc but I am not sure how it differs from 
> the msys2 flavored gcc.

Thanks.  Got msys2 configured for now.
I guess what I'll need is simply the recipe from Fossil developers on what 
'MingGW' setup they use and how they trigger the build using those tools, so I 
can reproduce building Fossil correctly with that configuration and give a hand 
to complete the win-server-ipv6 branch, using those tools.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] _WIN32 IPv6/IPv4 fossil server / ui support

2017-12-31 Thread Olivier Mascia
> Le 31 déc. 2017 à 21:03, Richard Hipp <d...@sqlite.org> a écrit :
> 
> Your changes (with some minor alterations by me) are now on a branch.

Good.  Found it.  Thanks for the C89 fix.

> They do not build using MinGW, sadly.  I don't know how to fix it.
> Maybe somebody else on the mailing list can accomplish that?

Surely.  [I'm posting this to the list.]

Could you lend me pointers on which MinGW version to get (and from where) so I 
can have a similar setup as yours?
I didn't used MinGW these last years (though did in the past).
Just visited www.mingw.org, but it looks like the pointers to download there 
are severely outdated (2013?).
Is this the right current MinGW project?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Replacing subversion revision number... by what?

2017-12-29 Thread Olivier Mascia
Le 29 déc. 2017 à 17:04, Mark Janssen <mpc.jans...@gmail.com> a écrit :
> 
> And how will you handle diverging repos so that my version 12 is not
> your version 12, because I didn't sync after commit 10?

Irrelevant, to me.
As said, no public released code will get out of anywhere except from a 
dedicated repo (let’s call it the root one) from which development repo are 
cloned from.

We’re not in an open-source scenario where anybody would build a 
public-distributed binary out of his own local repo. Anyone with code access 
(right to clone repo) can build a release build (for testing purposes for 
instance), but such a build would not be publicly distributed, if only because 
it couldn’t be EV code signed (no access to private keys to do so).

Well in between of these exchanges I could complete the overhaul of our 
production build automaton and this technique fits the bill nicely.

So thank you all for your valuable inputs on the matter. They not always 
applied to the specific concern, but were very interesting in all cases.

Season’s greetings to all of you,
-- 
Best regards, Meilleures salutations, Met vriendelijke groeten,  
Olivier Mascia (from mobile device), http://integral.software

___
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 server on a small private LAN

2017-12-29 Thread Olivier Mascia
Le 29 déc. 2017 à 12:31, Richard Hipp <d...@sqlite.org> a écrit :

>> In my own code, I generally end up including:
>> 
>> #include 
>> #include 
>> #include 
>> 
>> in code units using MS winsock.
>> 
>> I'll soon see what would fit for fossil win32 networking.
> 
> Please keep in mind that Fossil current compiles using both MSVC and
> MinGW.  We'd like to continue supporting both build environments.
> Thanks for your help!

Understood. I’ll keep that in mind. Good opportunity for me to refresh a MinGW 
setup on my computer!

-- 
Best regards, Meilleures salutations, Met vriendelijke groeten,  
Olivier Mascia (from mobile device)



___
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 server on a small private LAN

2017-12-29 Thread Olivier Mascia
> Le 29 déc. 2017 à 01:17, Richard Hipp <d...@sqlite.org> a écrit :
> 
> On 12/28/17, Olivier Mascia <o...@integral.be> wrote:
>> To get a proper dual-stack socket, the socket must be created with AF_INET6
>> first then setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,...)
> 
> When I try to do this I get:  error C2065: 'IPV6_V6ONLY': undeclared 
> identifier
> 
> MSVC 2015

In my own code, I generally end up including:

#include 
#include 
#include 

in code units using MS winsock.

I'll soon see what would fit for fossil win32 networking.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-29 Thread Olivier Mascia
> Le 29 déc. 2017 à 02:30, Richard Hipp <d...@sqlite.org> a écrit :
> 
> On 12/28/17, Thomas <tho...@dateiliste.com> wrote:
>> 
>> This could be an option too:
>> #ifndef IPV6_V6ONLY
>> #define IPV6_V6ONLY 27
>> #endif
> 
> It compiles with that.  But it doesn't work.  So for now, I think
> we'll just stick with IPv4-only servers for "fossil server" on windows
> - at least until somebody can suggest a way to fix it.

I'll happily take on that task, but it will probably be after Jan 2.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Replacing subversion revision number... by what?

2017-12-29 Thread Olivier Mascia
> Le 28 déc. 2017 à 23:58, Joerg Sonnenberger <jo...@bec.de> a écrit :
> 
>>>> I'm considering replacing the subversion revision ID, for the purpose of 
>>>> defining the file version ID (as above) at release-external build time, by 
>>>> the count of check-ins in the root repository.  That is the count returned 
>>>> by 'fossil info' in one of the multiple lines of output (for instance 
>>>> 'check-ins: 8801').
>> 
>> My 'count of check-ins' is your 'length of the commit chain to the root', or 
>> are we talking of something else here?
> 
> If you have a commit graph like:
> 
> A
> |
> B
> | \
> C D
> | |
> E F
> 
> Both E and F have a LoCC of 4, but the count f check-ins would depend on
> the order of commits?

That I don't know yet for sure.

I just want an integer, always increasing, even though not by one, from a 
specific branch, from a specific repository (the branch/repository from which I 
compile released code). And that value seems to fit that need perfectly.  It 
does not need to allow me backward lookups (finding a check-in from that 
number). That sequential number could even be managed outside by my build 
system. But it is interesting that it be linked with the count of check-ins, 
because somehow it gives an empiric sense "of the distance" of code between to 
release builds. Which we had before through the subversion revision ID.

Upon build I will derive the trailing version number of my executables from 
that integer. And my build system will auto add a tag with the full constructed 
version number to the top check-in of that same branch. I can also store that 
top check-in ID (hash) somewhere else (than in the version number) so it could 
be displayed on request. And there, thanks to the auto-added full version 
number tag upon successful release build, I get an easy way to locate the exact 
source code that was part of that build. It's easier for users to tell support 
people their version number than a hash code, even shortened.  And 
setup/distribution is easier thanks to an ever increasing full version number, 
even between patch builds of a same release.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 17:37, Olivier Mascia <o...@integral.be> a écrit :
> 
> The quick/easy/dirty/temporary fix before completing the proper support 
> (server-side) of IPv4+IPv6 would be to simply adjust the hint.ai_family 
> initialisation in http_socket.c::socket_open to read:
> 
> #ifdef _WIN32
>  hints.ai_family = AF_INET;
> #else
>  hints.ai_family = g.fIPv4 ? AF_INET : AF_UNSPEC;
> #endif
> 
> It works nicely for me. Perfectly expected performance of a large clone 
> (needing 250 round-trips) in about 50 seconds. Either using explicitly IPv4 
> in the URL or, with that patch, the proper DNS name.

To further clarify, here is the patching I did today based on fossil version 
2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC.
There is that discussed temporary limitation of the client-side (on Windows) to 
resolving only to IPv4 (to match the server being only IPv4) and another small 
change which is to call shutdown() on sockets before calling closesocket().
It is more interesting in winhttp.c than in http_socket.c, because it will help 
the windows TCP stack to more cleanly and generally more quickly free up kernel 
resources by sending the proper TCP FIN before getting rid of the socket. Kind 
of warning "I'm pulling the plug" before actually doing so.
Don't expect measurable performance improvement from that. The only benefit 
would be seen under rare situations when the server machine has thousands of 
other sockets active (maybe other softwares than Fossil). And even so, would be 
seen only if those other software also behave 'by the book'.

Index: src/http_socket.c
==
--- src/http_socket.c
+++ src/http_socket.c
@@ -119,10 +119,12 @@
 ** is a no-op.
 */
 void socket_close(void){
   if( iSocket>=0 ){
 #if defined(_WIN32)
+if (shutdown(iSocket, 1/*SD_SEND*/) == 0) /* Initiates the shutdown, 
sending TCP 'FIN' */
+  shutdown(iSocket, 0/*SD_RECEIVE*/);   /* Now denies receive */
 closesocket(iSocket);
 #else
 close(iSocket);
 #endif
 iSocket = -1;
@@ -147,11 +149,15 @@
   char zRemote[NI_MAXHOST];
 
   socket_global_init();
   socket_close();
   memset(, 0, sizeof(struct addrinfo));
+#ifdef _WIN32
+  hints.ai_family = AF_INET;
+#else
   hints.ai_family = g.fIPv4 ? AF_INET : AF_UNSPEC;
+#endif
   hints.ai_socktype = SOCK_STREAM;
   hints.ai_protocol = IPPROTO_TCP;
   sqlite3_snprintf(sizeof(zPort),zPort,"%d", pUrlData->port);
   rc = getaddrinfo(pUrlData->name, zPort, , );
   if( rc ){

Index: src/winhttp.c
==
--- src/winhttp.c
+++ src/winhttp.c
@@ -214,10 +214,12 @@
   }
 
 end_request:
   if( out ) fclose(out);
   if( in ) fclose(in);
+  if (shutdown(p->s, 1/*SD_SEND*/) == 0) /* Initiates the shutdown, sending 
TCP 'FIN' */
+shutdown(p->s, 0/*SD_RECEIVE*/);   /* Now denies receive */
   closesocket(p->s);
   file_delete(zRequestFName);
   file_delete(zReplyFName);
   file_delete(zCmdFName);
   fossil_free(p);
@@ -277,10 +279,12 @@
   }
 
 end_request:
   if( out ) fclose(out);
   if( in ) fclose(in);
+  if (shutdown(p->s, 1/*SD_SEND*/) == 0) /* Initiates the shutdown, sending 
TCP 'FIN' */
+shutdown(p->s, 0/*SD_RECEIVE*/);   /* Now denies receive */
   closesocket(p->s);
   file_delete(zRequestFName);
   file_delete(zReplyFName);
   fossil_free(p);
 }

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 17:18, Richard Hipp <d...@sqlite.org> a écrit :
> 
> There is one thread per connection in the parent process, which allows
> the parent to manage multiple simultaneous incoming connections.  As
> each thread gets a complete HTTP request, it writes that request into
> a temporary file, uses fossil_system() to invoke the "fossil http"
> command to handle the request and store the reply into a second
> temporary file, then the thread reads the reply and sends it back over
> the wire.  Finally, the two temporary files are deleted.
> 
> The fork() approach is much nicer, but we don't have fork() on
> windows.  I'm open to suggests on better ways to do this.

Unless your intend is to be able to support thousands of simultaneous requests, 
there is few to earn in changing this scheme.  The scaling limitation would be 
that spawning of sub-processes.  Overcoming that is possible, but is a major 
redesign of the very clear and simple winhttp.c you currently have.

I wouldn't loose precious time in that area.

As pointed in my other message, the main culprit of occasional sluggish windows 
behaviour when fossil reaches out a windows fossil server is that the server 
inadvertently implements an IPv4-only listening socket while the client is 
dual-stacked. It can loose seconds (in the order of multiple times 10 or 20 
seconds) per IPv6 connection attempt not answered by the remote server before 
finally trying an IPv4 address and succeeding its connection.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 16:55, Olivier Mascia <o...@integral.be> a écrit :
> 
>> I'll experiment with the fossil code here.  Familiarizing with winhttp.c for 
>> now.
> 
> I haven't yet come to bottom of it, but using IP (IPv4) in the URL (instead 
> of name) changes it all!!  There seem to be a high price paid in resolving 
> the server name on each round trip (from client). This or, due to dual-stack 
> being the norm on Windows, client connections loose time trying IPv6 
> (generally preferred by Windows when DNS reports both  and A records for 
> a name) before falling back to IPv4.
> 
> My test now runs (the network portion, excluding rebuilding metadata and next 
> things) within 50 seconds for all 250 round-trips and 102700 artifacts 
> received. It was close to 1 hour and a half before.
> 
> I'm further analysing http_socket.c (socket_open) following this discovery.

Okay, it revolves around g.fIPv4 which only appears in these lines:

Search "fIPv4" (3 hits in 3 files)
  I:\fossil\src\http_socket.c (1 hit)
Line 154:   hints.ai_family = g.fIPv4 ? AF_INET : AF_UNSPEC;
  I:\fossil\src\main.c (1 hit)
Line 159:   int fIPv4;  /* Use only IPv4, not IPv6. --ipv4 
*/
  I:\fossil\src\url.c (1 hit)
Line 382:   if( find_option("ipv4",0,0) ) g.fIPv4 = 1;

In http_socket.c it is tested to configure hints.ai_family with either AF_INET 
or AF_UNSPEC in order to query for only IPv4 or both IPv6 and IPv4. The server 
name resolution made by the client then returns both IPv6 and IPv4 because I 
didn't mentioned "--ipv4" option anywhere in my commands.  Further, enumerating 
the IPs, the code attempts socket creation *and* connection, trying the next 
returned IP if the connect fails.

Sounds good isn't it?
No. Because the server side never ever initialised a listening socket for 
dual-stack. It listens on IPv4 only. Leading to long pauses from the client 
trying IPv6 connections, unresponding, before trying next one which might 
happen to be IPv4 and reachable.

The server code do initialize its listening socket as this:

s = socket(AF_INET, SOCK_STREAM, 0);

That (on Windows) gives you an IPv4-limited socket.
To get a proper dual-stack socket, the socket must be created with AF_INET6 
first then setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,...) should be called to 
remove the "only IPv6" attribute from the socket.  See 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms738574(v=vs.85).aspx.

That is not the only thing to do because the test that follows on the validity 
of the IP address would have to be adjusted to take IPv4/IPv6 into account.

So the current situation is simply that when acting as server, fossil.exe setup 
an IPv4-only listening socket, while by default it will attempt dual-stack 
client connections, loosing a huge amount of time re-establishing those 
connections.  Add to this that recent Windows will reorder the IPs returned by 
getaddrinfo() as to list IPv6 first when the OS looks like having proper IPv6 
internet connectivity.

The quick/easy/dirty/temporary fix before completing the proper support 
(server-side) of IPv4+IPv6 would be to simply adjust the hint.ai_family 
initialisation in http_socket.c::socket_open to read:

#ifdef _WIN32
  hints.ai_family = AF_INET;
#else
  hints.ai_family = g.fIPv4 ? AF_INET : AF_UNSPEC;
#endif

It works nicely for me. Perfectly expected performance of a large clone 
(needing 250 round-trips) in about 50 seconds. Either using explicitly IPv4 in 
the URL or, with that patch, the proper DNS name.

I'll see to help with proper Windows dual-stack server socket in January.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 15:42, Olivier Mascia <o...@integral.be> a écrit :
> 
> I'll experiment with the fossil code here.  Familiarizing with winhttp.c for 
> now.

I haven't yet come to bottom of it, but using IP (IPv4) in the URL (instead of 
name) changes it all!!  There seem to be a high price paid in resolving the 
server name on each round trip (from client). This or, due to dual-stack being 
the norm on Windows, client connections loose time trying IPv6 (generally 
preferred by Windows when DNS reports both  and A records for a name) 
before falling back to IPv4.

My test now runs (the network portion, excluding rebuilding metadata and next 
things) within 50 seconds for all 250 round-trips and 102700 artifacts 
received. It was close to 1 hour and a half before.

I'm further analysing http_socket.c (socket_open) following this discovery.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 15:04, Richard Hipp <d...@sqlite.org> a écrit :
> 
> On 12/28/17, Richard Hipp <d...@sqlite.org> wrote:
>> 
>> Running multiple copies of the new fossil-stress.tcl script
>> (https://www.fossil-scm.org/fossil/file/tools/fossil-stress.tcl) from
>> a linux box against a windows laptop confirms that the "fossil server"
>> command on Windows sometimes latches up.
> 
> Preliminary findings are that this latch-up is the result of an
> adverse interaction with built-in anti-virus software on Win10.  You
> *might* have more success by disabling anti-virus on your server - if
> you dare.  We'll try to figure out a way to fix the problem in fossil,
> in the meantime.

Confirmed that server on macOS, client on Windows (server 2016 and server 2012 
R2) is OK.
Server and client on same Windows box, through localhost is comparable (just 
slightly slower) to server macOS and client Windows.

I'll dig in the source code over the week-end. Generally, there are subtle TCP 
window issues to take into account when configuring sockets on various Windows 
versions, along side with setting up the 'just-right' buffer sizes on those 
sockets to get it right and not have traffic stalling unexpectedly.  Been there 
in our own projects.  I'll experiment with the fossil code here.  Familiarizing 
with winhttp.c for now.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 13:51, Richard Hipp <d...@sqlite.org> a écrit :
> 
> On 12/28/17, Olivier Mascia <o...@integral.be> wrote:
>> 
>> Is "fossil server" generally deemed sufficient for a small LAN (lab) of
>> let's say < 10 developers each with their own clone ?
>> Or should a proper HTTP server be used as front end to SCGI mode of fossil?
> 
> The "fossil server" command *should* be sufficient for this.  However,
> it doesn't get used that much.  Most people run from a proper HTTP
> server of some kind.  Consequently, it is possible for bugs to linger
> in "fossil server" without anybody noticing.  One such performance
> bug, that had been in the code for over 10 years, was fixed just
> before Chrismas
> (https://www.fossil-scm.org/fossil/info/05ec15cad53e8176).  That
> particular fix applies to unix systems only, but there might be
> similar problems on the windows side.
> 
> As a test of last weeks' fix, I am currently running a clone of the
> Fossil self-hosting repository using the "fossil server" command in a
> datacenter near Paris on a machine that is approximately equal to a
> Raspberry Pi.  The clone is internet-facing
> (http://www4.fossil-scm.org/) and so far seems to be holding up fine.
> 
> I just took a peek at the code for "fossil server" on windows.
> (Unlike most other commands in fossil, the "fossil server" command
> requires a separate implementation in windows.)  I am reminded that
> windows is not the ideal platform on which to host a web server and
> that compromises had to be made in the implementation.  It *should*
> work. And it does work fine for things like "fossil ui".  But if you
> start hitting it with any kind of load, I can see that it might easily
> bog down.  Probably it will take someone with more windows-foo than me
> to fix that.
> 
> So if you are having problems using "fossil server" on Windows, you
> might do well to set up a Raspberry PI (or the equivalent) in the
> corner of the room and run "fossil server" there instead, using the
> latest "trunk" version of Fossil that contains the Christmas-eve patch
> for the "fossil server" inefficiency.

Thanks a lot Richard for this insider view on the matter.
I'll not get down to Raspberry PI (which I really like by the way) but spawn a 
common linux VM for the task and I'm confident, reading your comments, that it 
will be just fine.

By the way, in between, the clone completed successfully. Here is the display 
at end (project ids and password removed).

Round-trips: 250   Artifacts sent: 0  received: 102700
*** time skew *** server is slow by 106.6 seconds
Clone done, sent: 85932  received: 2249557802  ip: 10.32.1.6
Rebuilding repository meta-data...
  100.0% complete...
Extra delta compression...
Vacuuming the database...

I'll have a close look in the next weeks at the source code of the Windows 
server feature of Fossil.  The warning "*** time skew *** will certainly be an 
interesting starting point.

Hopefully I might be able to bring something in that area.  Our own software is 
actually much like Fossil: single process, multi-usages, with its own HTTPS 
embedded server (using OpenSSL).  (Albeit currently only available on Windows, 
so we have good experience in that area of HTTP serving on Windows using custom 
C/C++ code).

For information, my strange experience today was running this code (on both 
server and cloner side): 

This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
Compiled on Dec 27 2017 16:08:53 using msc-19.11 (64-bit)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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 server on a small private LAN

2017-12-28 Thread Olivier Mascia
> Le 28 déc. 2017 à 12:26, Olivier Mascia <o...@integral.be> a écrit :
> 
> Dear,
> 
> Is "fossil server" generally deemed sufficient for a small LAN (lab) of let's 
> say < 10 developers each with their own clone ?
> Or should a proper HTTP server be used as front end to SCGI mode of fossil?
> 
> From some quick-n-dirty tests (yeah, on a Windows server, not the best of all 
> ideas but simply convenient right now), it looks like cloning a 2 GB 
> repository through http over 1 Gbps LAN is curiously slow and I wonder why. 
> Not that we'll clone every day of course, but it looks so slow that it 
> questions stability.


To give context to this situation, I'm now 45 minutes later and it still is not 
complete.

fossil clone http://olivier@something:8081/repotest repotest-om.fossil
password for olivier: *
remember password (Y/n)? Y
Round-trips: 138   Artifacts sent: 0  received: 82563
...

The computer running fossil server is doing "nothing", 1 or 2% cpu consumed, 
LAN mostly calm.
The computer pulling the clone does the same.
I'm not seeing significant disk IO on any of them.
The LAN segment they're both on has a background noise of about 1 Mbps with 
short peaks of less than 50 Mbps while this is ongoing.

It really looks as if either the fossil process running the clone OR the fossil 
process running the server is abnormally slow doing its work.
I'll probably retry such a clone locally (over http but both processes on same 
machine, through localhost) to try to get an understanding of what's going on.

I must admit it awfully looks like a pure networking issue, but I tested a file 
transfer minutes before rerunning this clone test and I peaked 940 Mbps on the 
wire easily. A Gremlin, there is. Who's got some water?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia

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


[fossil-users] fossil server on a small private LAN

2017-12-28 Thread Olivier Mascia
Dear,

Is "fossil server" generally deemed sufficient for a small LAN (lab) of let's 
say < 10 developers each with their own clone ?
Or should a proper HTTP server be used as front end to SCGI mode of fossil?

From some quick-n-dirty tests (yeah, on a Windows server, not the best of all 
ideas but simply convenient right now), it looks like cloning a 2 GB repository 
through http over 1 Gbps LAN is curiously slow and I wonder why. Not that we'll 
clone every day of course, but it looks so slow that it questions stability.

I'll spawn a linux VM or re-test from a Mac machine to get new experiences, but 
maybe there are anyway things to pay attention to, which I didn't (yet).

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia

___
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] Replacing subversion revision number... by what?

2017-12-27 Thread Olivier Mascia
> Le 28 déc. 2017 à 00:07, bch <brad.har...@gmail.com> a écrit :
> 
> The chain-length method Joerg mentioned is roughly what I was thinking, 
> bounded to a single branch “namespace” to manage disambiguation. Mind, this 
> is off the top of my head, not a thing I’ve implemented.


Thanks Brad.
-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia

___
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] Replacing subversion revision number... by what?

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 23:10, bch <brad.har...@gmail.com> a écrit :
> 
> On Wed, Dec 27, 2017 at 2:06 PM Olivier Mascia <o...@integral.be> wrote:
> Hello,
> 
> Coming from subversion where there is a revision number, incremented by one 
> by each commit, 
> 
> 
> Let me be the first of many to say that those centrally controlled increments 
> are not possible in a *distributed* source control system. Maybe a “feature 
> branch” and your own heuristics would fit the bill?

Brad, I think I know that and wrote it in my message.
The question was indeed about my proposed heuristic to use the count of 
check-ins:

> Of course this characteristic (a sequential revision ID) is logical in a 
> centrally managed system as subversion and is less trivial in distributed scm 
> like fossil or git.
> 
> I'm considering replacing the subversion revision ID, for the purpose of 
> defining the file version ID (as above) at release-external build time, by 
> the count of check-ins in the root repository.  That is the count returned by 
> 'fossil info' in one of the multiple lines of output (for instance 
> 'check-ins: 8801').
> 
> The full version string (as "1.2.4.8801") would then be automatically added 
> as a tag to the most recent check-in on trunk (from which the build is 
> derived).
> 
> How does that sound to those of you who might have had similar concerns?
> Been there and rushed away? Or happy to stay?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Replacing subversion revision number... by what?

2017-12-27 Thread Olivier Mascia
Hello,

Coming from subversion where there is a revision number, incremented by one by 
each commit, which is very easy to capture in automated builds to be injected 
as part of the version number of binaries built...

Revision 8745 -> version x.y.z.8745
Revision 8789 -> version x.y.z.8789

The x.y.z is incremented by hand when it means something (release of some 
tested version). But for the lifetime of a version, there might be some newer 
builds (small fixes) and they will be auto-tagged with the revision ID as last 
part of the full version number.

In real life this can lead to sequences of file version numbers as:

1.2.3.8745
1.2.3.8749
1.2.4.8801
...

This has many advantages, not the least being to easily spot which among two 
binaries is more up to date (has simplifications in setup systems). The main 
limitation is that (on Windows) those 4 parts of a full file version id are 
each limited to 16 bits.  Limiting this model to about 65.000 revisions.  After 
which some offset should be applied (which is easy to do every time the first 3 
values are hand changed).

Of course this characteristic (a sequential revision ID) is logical in a 
centrally managed system as subversion and is less trivial in distributed scm 
like fossil or git.

I'm considering replacing the subversion revision ID, for the purpose of 
defining the file version ID (as above) at release-external build time, by the 
count of check-ins in the root repository.  That is the count returned by 
'fossil info' in one of the multiple lines of output (for instance 'check-ins: 
8801').

The full version string (as "1.2.4.8801") would then be automatically added as 
a tag to the most recent check-in on trunk (from which the build is derived).

How does that sound to those of you who might have had similar concerns?
Been there and rushed away? Or happy to stay?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] question regarding fuel-scm maintenance / ownership

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 17:25, Chris Drexler <ckolum...@ac-drexler.de> a écrit :
> 
>> If you are unable to make contact, you might consider "forking" the project 
>> (under a new name) and maintaining it yourself.
> 
> The project is currently available at 
> 
> https://server.ac-drexler.de/fossil/fuel
> 
> if anyone is interested.

What Fossil version(s) does Fuel works with?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Where would fossil.exe write some log when running as a service?

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 14:49, Olivier Mascia <o...@integral.be> a écrit :
> 
> On one computer (running Server 2016), I have:
> 
> fossil version -v
>   This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
>   Compiled on Dec 27 2017 13:45:17 using msc-19.11 (64-bit)
> 
> And I can run it as a service.
> ...
> On another computer (which is 2012 R2), the exact same binary fails to run as 
> a service.
> ...
> It is not started because upon attempt to start it, it fails and stops.  
> Attempting to start it by "fossil winery start fossil" displays dots 
> endlessly.  But I have no clue as to what this happens without any kind of 
> log of what might go wrong. The Event Viewer simply confirms it started and 
> then failed to start (or stop).
> 
> Running "C:\Develop\Fossil\fossil.exe" server --repolist "C:/Develop/Fossil" 
> from a command-line is OK though.

Fun. Fixed.
Added -P 8081 to the fossil winsrv create command line.
It didn't occurred to me immediately, but when ran from command-line the web 
service exposed itself from port 8081 and not 8080. So I suspected that maybe 
in service mode it might not auto-correct the port (8080 is indeed occupied by 
another software on *that* machine).
Bingo.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Where would fossil.exe write some log when running as a service?

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 15:52, Olivier Mascia <o...@integral.be> a écrit :
> 
>> Le 27 déc. 2017 à 14:49, Olivier Mascia <o...@integral.be> a écrit :
>> 
>> On one computer (running Server 2016), I have:
>> 
>> fossil version -v
>>  This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
>>  Compiled on Dec 27 2017 13:45:17 using msc-19.11 (64-bit)
>> 
>> And I can run it as a service.
>> ...
>> On another computer (which is 2012 R2), the exact same binary fails to run 
>> as a service.
>> ...
>> It is not started because upon attempt to start it, it fails and stops.  
>> Attempting to start it by "fossil winery start fossil" displays dots 
>> endlessly.  But I have no clue as to what this happens without any kind of 
>> log of what might go wrong. The Event Viewer simply confirms it started and 
>> then failed to start (or stop).
>> 
>> Running "C:\Develop\Fossil\fossil.exe" server --repolist "C:/Develop/Fossil" 
>> from a command-line is OK though.
>> 
>> Indeed the configuration is not rigorously the same between both machines, 
>> the paths where fossil.exe is located (along with the repository) are 
>> different. But that doesn't look suspect.
>> 
>> So what would you suggest I look for?
> 
> Just built a new binary out of branch-2.4, I see the exact same behaviour. OK 
> on one server, fails to start on another. So it probably is related to some 
> environmental / configuration detail differing between these two computers.  
> But I'm still rather clueless to find what triggers the failure without any 
> kind of logging or specific error code from the service startup. Works fine 
> from command-line, fails to start when configured as service. Oh yes, I could 
> make a debug build and attempt to start it as a service under debugger, but 
> that is generally tricky to do, unless you can attach to the service 
> executable *after* it started.  Here it fails to start...

So as to give context to what I mean by not having clues to what's happening, 
here is the exit code returned by the Windows service controller (1067, "The 
process terminated unexpectedly").  It just means though it begins, it then 
properly exits (unexpectedly for the service controller) or more probably 
simply crash.

C:\Develop\Fossil>sc query fossil

SERVICE_NAME: fossil
TYPE   : 10  WIN32_OWN_PROCESS
STATE  : 1  STOPPED
WIN32_EXIT_CODE: 1067  (0x42b)
    SERVICE_EXIT_CODE  : 0  (0x0)
CHECKPOINT : 0x0
WAIT_HINT  : 0x0

C:\Develop\Fossil>net helpmsg 1067

The process terminated unexpectedly.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Where would fossil.exe write some log when running as a service?

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 14:49, Olivier Mascia <o...@integral.be> a écrit :
> 
> On one computer (running Server 2016), I have:
> 
> fossil version -v
>   This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
>   Compiled on Dec 27 2017 13:45:17 using msc-19.11 (64-bit)
> 
> And I can run it as a service.
> ...
> On another computer (which is 2012 R2), the exact same binary fails to run as 
> a service.
> ...
> It is not started because upon attempt to start it, it fails and stops.  
> Attempting to start it by "fossil winery start fossil" displays dots 
> endlessly.  But I have no clue as to what this happens without any kind of 
> log of what might go wrong. The Event Viewer simply confirms it started and 
> then failed to start (or stop).
> 
> Running "C:\Develop\Fossil\fossil.exe" server --repolist "C:/Develop/Fossil" 
> from a command-line is OK though.
> 
> Indeed the configuration is not rigorously the same between both machines, 
> the paths where fossil.exe is located (along with the repository) are 
> different. But that doesn't look suspect.
> 
> So what would you suggest I look for?

Just built a new binary out of branch-2.4, I see the exact same behaviour. OK 
on one server, fails to start on another. So it probably is related to some 
environmental / configuration detail differing between these two computers.  
But I'm still rather clueless to find what triggers the failure without any 
kind of logging or specific error code from the service startup. Works fine 
from command-line, fails to start when configured as service. Oh yes, I could 
make a debug build and attempt to start it as a service under debugger, but 
that is generally tricky to do, unless you can attach to the service executable 
*after* it started.  Here it fails to start...

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Where would fossil.exe write some log when running as a service?

2017-12-27 Thread Olivier Mascia
Dear,

On one computer (running Server 2016), I have:

fossil version -v
This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
Compiled on Dec 27 2017 13:45:17 using msc-19.11 (64-bit)

And I can run it as a service:

fossil winsrv show fossil
Service name ...: fossil
Display name ...: fossil
Service description : Fossil - Distributed Software Configuration 
Management
Service type ...: Service runs in its own process.
Service start type .: Started automatically by the service control 
manager.
Binary path name ...: "C:\Tools\fossil.exe" server --repolist 
"I:/fossil"
Service username ...: LocalSystem
Current state ..: Running.

On another computer (which is 2012 R2), the exact same binary fails to run as a 
service:

fossil winsrv show fossil
Service name ...: fossil
Display name ...: fossil
Service description : Fossil - Distributed Software Configuration 
Management
Service type ...: Service runs in its own process.
Service start type .: Started automatically by the service control 
manager.
Binary path name ...: "C:\Develop\Fossil\fossil.exe" server --repolist 
"C:/Develop/Fossil"
Service username ...: LocalSystem
Current state ..: Stopped.

It is not started because upon attempt to start it, it fails and stops.  
Attempting to start it by "fossil winery start fossil" displays dots endlessly. 
 But I have no clue as to what this happens without any kind of log of what 
might go wrong. The Event Viewer simply confirms it started and then failed to 
start (or stop).

Running "C:\Develop\Fossil\fossil.exe" server --repolist "C:/Develop/Fossil" 
from a command-line is OK though.

Indeed the configuration is not rigorously the same between both machines, the 
paths where fossil.exe is located (along with the repository) are different. 
But that doesn't look suspect.

So what would you suggest I look for?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Import --svn "internal error: out of memory"

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 13:22, Olivier Mascia <o...@integral.be> a écrit :
> 
>> But the fossil import turned short after about 3200 revisions (and about 10 
>> minutes too) as such:
>> 
>>  C:\Develop\Fossil>fossil import --svn integral.fossil integral.dump
>>  Importing SVN revision: 3203
>>  Fossil internal error: out of memory
>> 
>> What could I do from here to overcome this or, before that, better identify 
>> what might be the reason for "out of memory"?
>> This is fossil version 2.4 [a0001dcf57] 2017-11-03 09:29:29 UTC.
>> 
>> The computer I'm running it on for now is a VM with 4 GB RAM which could be 
>> easily reconfigured for much more, even if only temporarily, but as I 
>> understand the fossil.exe I have downloaded from fossil-scm.org is a 32-bits 
>> process, so should not benefit much.
>> 
>> Should I see to build my own copy of fossil, as a 64-bits process first and 
>> simply retry?
>> Or are there other paths to walk first?
> 
> Considering that the dump file out of svnadmin is probably 'portable' across 
> platforms, and that the fossil pre-built binary for Mac is logically 64 bits, 
> I moved the dump file to my MacBook Pro where I'm currently re-running the 
> import.
> 
> So far it has imported past the point where it failed on Windows (did about 
> 1/3 of the revisions for now).
> 
>   $ fossil import --svn integral.fossil integral.dump
>   Importing SVN revision: 6393
> 
> I'll report wether it went OK up the end or not and wether I seem to have 
> issues using fossil (32 bits) on Windows on such a repository afterwards.

Success.

$ fossil import --svn integral.fossil integral.dump
Importing SVN revision: 15678 Done!
Rebuilding repository meta-data...
  100.0% complete...
Vacuuming... ok

And in between, while import running on Mac, I built a 64 bits binary on 
Windows, out of the latest trunk obtained by cloning the fossil repository, 
which went flawlessly (at least apparently, but I have confidence) and I now 
have there:

This is fossil version 2.5 [f4a9df4dd0] 2017-12-23 04:21:41 UTC
Compiled on Dec 27 2017 13:45:17 using msc-19.11 (64-bit)

I think I should be covered for my further tests and discoveries, even though 
this is now latest unreleased trunk code.
:)

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


___
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] Import --svn "internal error: out of memory"

2017-12-27 Thread Olivier Mascia
> Le 27 déc. 2017 à 12:44, Olivier Mascia <o...@integral.be> a écrit :
> 
> Dear,
> 
> Being "rookie" with Fossil, I'm starting some tests to migrate some of our 
> subversion repositories to Fossil and have a better test bed to learn fossil 
> before eventually deciding on a switch.
> 
> I have successfully migrated a rather small (and secondary) repository with 
> only some hundreds of revisions.
> So decided to run the same test on our main one.
> The dump file (out of svnadmin) is about 12.6 GB, which I guess is not that 
> large and holds about 15600 revisions to a rather large number of files 
> (>27000 files, >1300 folders/subfolders). It has the usual structure of 
> trunk, branches, tags, with few branches and few tags.
> 
> The svnadmin dump ran quickly (matter of <10 minutes with option -M 512).
> 
> But the fossil import turned short after about 3200 revisions (and about 10 
> minutes too) as such:
> 
>   C:\Develop\Fossil>fossil import --svn integral.fossil integral.dump
>   Importing SVN revision: 3203
>   Fossil internal error: out of memory
> 
> What could I do from here to overcome this or, before that, better identify 
> what might be the reason for "out of memory"?
> This is fossil version 2.4 [a0001dcf57] 2017-11-03 09:29:29 UTC.
> 
> The computer I'm running it on for now is a VM with 4 GB RAM which could be 
> easily reconfigured for much more, even if only temporarily, but as I 
> understand the fossil.exe I have downloaded from fossil-scm.org is a 32-bits 
> process, so should not benefit much.
> 
> Should I see to build my own copy of fossil, as a 64-bits process first and 
> simply retry?
> Or are there other paths to walk first?

Considering that the dump file out of svnadmin is probably 'portable' across 
platforms, and that the fossil pre-built binary for Mac is logically 64 bits, I 
moved the dump file to my MacBook Pro where I'm currently re-running the import.

So far it has imported past the point where it failed on Windows (did about 1/3 
of the revisions for now).

$ fossil import --svn integral.fossil integral.dump
Importing SVN revision: 6393

I'll report wether it went OK up the end or not and wether I seem to have 
issues using fossil (32 bits) on Windows on such a repository afterwards.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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


[fossil-users] Import --svn "internal error: out of memory"

2017-12-27 Thread Olivier Mascia
Dear,

Being "rookie" with Fossil, I'm starting some tests to migrate some of our 
subversion repositories to Fossil and have a better test bed to learn fossil 
before eventually deciding on a switch.

I have successfully migrated a rather small (and secondary) repository with 
only some hundreds of revisions.
So decided to run the same test on our main one.
The dump file (out of svnadmin) is about 12.6 GB, which I guess is not that 
large and holds about 15600 revisions to a rather large number of files (>27000 
files, >1300 folders/subfolders). It has the usual structure of trunk, 
branches, tags, with few branches and few tags.

The svnadmin dump ran quickly (matter of <10 minutes with option -M 512).

But the fossil import turned short after about 3200 revisions (and about 10 
minutes too) as such:

C:\Develop\Fossil>fossil import --svn integral.fossil integral.dump
Importing SVN revision: 3203
Fossil internal error: out of memory

What could I do from here to overcome this or, before that, better identify 
what might be the reason for "out of memory"?
This is fossil version 2.4 [a0001dcf57] 2017-11-03 09:29:29 UTC.

The computer I'm running it on for now is a VM with 4 GB RAM which could be 
easily reconfigured for much more, even if only temporarily, but as I 
understand the fossil.exe I have downloaded from fossil-scm.org is a 32-bits 
process, so should not benefit much.

Should I see to build my own copy of fossil, as a 64-bits process first and 
simply retry?
Or are there other paths to walk first?

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


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