Discussion:
[fossil-users] Windows GUI that allows diff between two, revisions?
Gilles
2018-02-13 10:42:59 UTC
Permalink
As best I recall, Fuel uses "fossil ui" (or "fossil server") behind the
scenes, so any feature of "fossil ui" should also be usable in Fuel.
It has been years since I looked at Fuel (as an option for co-workers who
dislike the command line), so I'm not 100% sure, but I do remember Fuel
having an embedded web browser to display content from "fossil ui". I
thought Fuel's design somewhat "clunky". My co-workers said it was more
confusing than using the Fossil command line.
Thanks for the tip. Fuel does have an internal web browser:

Loading Image...

If there's no Windows alternative to Fuel, it looks like it's either the
web UI or the command line.

Is there an easy way to compare two revisions of a file while the
repository is closed (ie. not a comparison between a revision in the
repo and a live file in the workspace), possibly using WinMerge, so I
can easily see what the changes are, check out the latest verison, and
copy/paste ?
Richard Hipp
2018-02-13 12:50:35 UTC
Permalink
Post by Gilles
Is there an easy way to compare two revisions of a file while the
repository is closed
"fossil ui repository-filename". That brings up the web interface on
the named repository file. Then follow the same procedures as before.
--
D. Richard Hipp
***@sqlite.org
Gilles
2018-02-14 14:30:35 UTC
Permalink
Thanks for the infos on how to diff two revisions through the web UI.
timeline, select a commit. Scroll down to the file of interest and
click on it to show that file's history. In the "revision graph" (on
the left), click the version you want to compare from (the node will
turn red), then the version you want to compare to. This will display
(in the web browser), a differ of the 2 versions.
To use WinMerge, you need to configure Fossil to use that as the
       fossil diff --from VERSION --to VERSION
This will launch WinMerge (with temporary copies) to display the
differences between the 2 versions. However, Fossil will ignore any
changes you make in WinMerge.
1. Could you explain how to configure Fossil to use WinMerge to diff two
revisions?

2. Once I find some code, without leaving WinMerge, is there a simple
way to check out the file and paste it to the live file in the workspace?

3. Is there a way to grep the whole repo for a given piece of code?
Warren Young
2018-02-14 14:51:26 UTC
Permalink
1. Could you explain how to configure Fossil to use WinMerge to diff two revisions?
First:

http://manual.winmerge.org/Version_control.html

Second:

https://www.fossil-scm.org/index.html/help?cmd=gdiff
https://www.fossil-scm.org/index.html/help?cmd=gdiff-command
3. Is there a way to grep the whole repo for a given piece of code?
https://www.fossil-scm.org/index.html/help?cmd=fts-config
Daniel Dumitriu
2018-02-14 15:25:13 UTC
Permalink
Post by Gilles
1. Could you explain how to configure Fossil to use WinMerge to diff
fossil gdiff --command "\"C:\Program Files
(x86)\WinMerge\WinMergeU.exe\"" --from FROM_VERSION --to TO_VERSION

To use WinMerge as the visual diff tool:

fossil settings gdiff-command --global "\"C:\Program Files
(x86)\WinMerge\WinMergeU.exe\""

then simply drop the '--command' argument from 'fossil gdiff'.
Gilles
2018-02-15 11:04:54 UTC
Permalink
Thanks all for the help.

Out of curiosity, is there a way to compile the Fossil EXE into a DLL,
so as to make it easier to interact with it from a GUI application
instead of the CLI?

https://www.fossil-scm.org/xfer/doc/trunk/www/build.wiki
Chris
2018-02-15 13:31:20 UTC
Permalink
Would https://fuel-scm.org be an option for you?

A fossil library seems not to be on the roadmap according to other threads in this list

Chris
Post by Gilles
Thanks all for the help.
Out of curiosity, is there a way to compile the Fossil EXE into a DLL,
so as to make it easier to interact with it from a GUI application
instead of the CLI?
https://www.fossil-scm.org/xfer/doc/trunk/www/build.wiki
_______________________________________________
fossil-users mailing list
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Richard Hipp
2018-02-15 14:17:32 UTC
Permalink
Post by Chris
Would https://fuel-scm.org be an option for you?
A fossil library seems not to be on the roadmap according to other threads in this list
The current Fossil code is designed around the near 50-year-old unix
principle that a process starts up, does one thing quickly, then
exits, leaving the OS to clean up resource leaks. For this reason,
the current Fossil code is unlikely to ever be turned into a DLL.
There was a project to rewrite Fossil as a DLL, but there has been no
recent progress on that.
--
D. Richard Hipp
***@sqlite.org
Gilles
2018-02-15 14:48:42 UTC
Permalink
Post by Richard Hipp
Post by Chris
Would https://fuel-scm.org be an option for you?
A fossil library seems not to be on the roadmap according to other threads in this list
The current Fossil code is designed around the near 50-year-old unix
principle that a process starts up, does one thing quickly, then
exits, leaving the OS to clean up resource leaks. For this reason,
the current Fossil code is unlikely to ever be turned into a DLL.
There was a project to rewrite Fossil as a DLL, but there has been no
recent progress on that.
Too bad.

Fuel hasn't been updated since 2015, and it's missing some features,
such as being able to diff between two revisions.
Stephan Beal
2018-02-15 17:45:54 UTC
Permalink
Post by Gilles
...There was a project to rewrite Fossil as a DLL, but there has been no
recent progress on that.
Too bad.
That's my fault. Severe RSI has left me on medical leave for most of the
past 3 years (with no end in sight), which has effectively removed me from
the programming scene. While libfossil was quite far along (aside from
networking support, it had, at the library level, essentially all of the
required features)), the SHA1 "attack" and subsequent reworking on fossil
have left libfossil requiring a non-trivial amount of rework to catch up,
and i'm physically unable to do it :/. If someone would like to take it
over, the code is here:

http://fossil.wanderinghorse.net/r/libfossil
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Gilles
2018-02-15 21:19:25 UTC
Permalink
This post might be inappropriate. Click to display it.
Gilles
2018-02-15 21:43:13 UTC
Permalink
Alternatively: As a work-around, what about offering an easy-to-parse
output from the EXE ?

For instance, I'd like to find all the release versions for a given
file, so as to display the list and let the user pick two to perform a diff:
======== Current
C:\>fossil finfo myfile.c
History of myfile.c
2018-02-15 [f8e2f79336] Removed comment (user: joe, artifact: [742cdcc399],
           branch: trunk)
2018-02-15 [87c72d2e84] Added files (user: joe, artifact: [26bb04f67c],
           branch: trunk)
C:\>fossil gdiff --from 87c72d2e84 --to f8e2f79336
======== Suggestion
f8e2f79336
87c72d2e84
========

And voilà ! :-)
Post by Gilles
No problem. I was just wondering, because a desktop GUI would make
Fossil accessible to non-programmers who need a source control but
don't even know there's such a thing.
It's a shame, since SQLite is itself an EXE + DLL.
...There was a project to rewrite Fossil as a DLL, but there has been no
recent progress on that.
Too bad.
That's my fault. Severe RSI has left me on medical leave for most of
the past 3 years (with no end in sight), which has effectively
removed me from the programming scene. While libfossil was quite far
along (aside from networking support, it had, at the library level,
essentially all of the required features)), the SHA1 "attack" and
subsequent reworking on fossil have left libfossil requiring a
non-trivial amount of rework to catch up, and i'm physically unable
http://fossil.wanderinghorse.net/r/libfossil
_______________________________________________
fossil-users mailing list
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Stephan Beal
2018-02-15 22:07:50 UTC
Permalink
Post by Gilles
Alternatively: As a work-around, what about offering an easy-to-parse
output from the EXE ?
For instance, I'd like to find all the release versions for a given file,
======== Current
C:\>fossil finfo myfile.c
History of myfile.c
fossil json finfo myfile.c

e.g.

[***@lapdog:~/fossil/fossil]$ f json finfo BUILD.txt | head -20
{
"fossil":"6b41a7e803348a9247818a66c9b968a9fd8e5d3408cecdaeeeed905c08dc018a",
"timestamp":1518732431,
"command":"finfo",
"procTimeUs":4000,
"procTimeMs":4,
"warnings":[{
"code":1,
"text":"Achtung: the output of the finfo command is up for change."
}],
"payload":{
"name":"BUILD.txt",
"checkins":[
{
"checkin":"06ffd8009ff257ded9f98e179fd52513081ddcf2",
"uuid":"976db410b019ec100c95da8aa977d6209fee9a4e",
"timestamp":1428028595,
"user":"mistachkin",
"comment":"Merge updates from trunk.",
"size":2704,
[***@lapdog:~/fossil/fossil]$
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Gilles
2018-02-16 13:26:59 UTC
Permalink
Chris Drexler Thu, 15 Feb 2018 08:53:54 -0800 > I know that there hasn't
been an update for a while. I was in contact with the author who just
didn't find much time in the past to advance fuel. I made some (minor)
adjustments avail at https://server.ac-drexler.de/fossil/fuel

Thanks much. I tried Fuel-2.0.0-beta3-win32.zip,but it fails opening a
repo (works OK with the last official build, ie. 2.0.0 from 2015):
===========
fossil open D:/Temp/Fossil.test/repo.fossil
SQLITE_ERROR: near "(": syntax error
SQLITE_CORRUPT: database corruption at line 105609 of [2ef4f3a5b1]
SQLITE_CORRUPT: malformed database schema (artifact) - near "(": syntax
error
D:\Apps\Fuel.Fossil.GUI\2.0.0-beta3\fossil.exe: malformed database
schema (artifact) - near "(": syntax error
SELECT value FROM config WHERE name='allow-symlinks'
===========
and if you have certain feature requests that overlap with my needs
that I might be able to add this... but I'm also quiet short on dev time
these days :-(.

Personally, I'd like a way to compare two revisions for a given file:
After right-clicking a file > History, it could show a list of the
revisions, and let the user pick two, before launching WinMerge. Then,
there should be a way to either check out the same file or another file,
and copy/paste code. Combined with a good text search, this would be an
easy way to re-use some code snippets. I find Fuel very nice to use.

Maybe we could create an Etherpad so people can vote for features, among
all the commands available from Fossil:
=========
c:\>fossil help
Usage: fossil help TOPIC
Common commands:  (use "fossil help -a|--all" for a complete list)
add          cat          finfo        open         settings unpublished
addremove    changes      gdiff        praise       sql unversioned
all          clean        help         publish      stash update
amend        clone        import       pull         status version
annotate     commit       info         push         sync
bisect       delete       init         rebuild      tag
blame        diff         ls           remote-url   timeline
branch       export       merge        revert       ui
bundle       extras       mv           rm           undo
This is fossil version 2.5 [188a0e2904] 2018-02-07 18:48:14 UTC
=========
I can't access the image below, my browser complains about wrong
certificate  and the about errors in the png file
Loading Image...
Weird. Here it is on another site : https://ibb.co/mWEQ1S

Thanks.
Chris Drexler
2018-02-16 16:31:52 UTC
Permalink
Post by Gilles
Thanks much. I tried Fuel-2.0.0-beta3-win32.zip,but it fails opening a
===========
fossil open D:/Temp/Fossil.test/repo.fossil
SQLITE_ERROR: near "(": syntax error
SQLITE_CORRUPT: database corruption at line 105609 of [2ef4f3a5b1]
syntax error
D:\Apps\Fuel.Fossil.GUI\2.0.0-beta3\fossil.exe: malformed database
schema (artifact) - near "(": syntax error
SELECT value FROM config WHERE name='allow-symlinks'
===========
I've never tried the beta zip. Which version of fossil is packaged in
there? Resp. which binary do you have in your path. If it's a binary
from 2015 it might still be fossil.exe 1.35 or something. Such an old
version cannot open new repositories any more. Just replace it with you
own copy of fossil.exe
Post by Gilles
After right-clicking a file > History, it could show a list of the
revisions, and let the user pick two, before launching WinMerge. Then,
there should be a way to either check out the same file or another
file, and copy/paste code. Combined with a good text search, this
would be an easy way to re-use some code snippets. I find Fuel very
nice to use.
Sounds reasonable. I think we should carefully decide what to implement
within fuel and what to leave to the features already available within
fossil. In your case I could imagine having the list to select the
version to be provided by fuel, but the rest to fossil features (e.g. 
opening a local diff tool with the right versions via a fossil.exe and
leave the merge feature to the configured text/gui merge tool). Just
some initial food for discussion ;-)

I see Fuel as a start point for on-and-off / entry-level users of
fossil. Therefore I'd focus on feature for this type of clientele. the
power features of fossil are still avail via command line for the resp.
power users. E.g. I installed for my son who just starts programming
under Win/Linux and cross-platform fossil w/ fuel is MUCH easier than
git :-).  Opinions on this one anywone?
Post by Gilles
Maybe we could create an Etherpad so people can vote for features,
That sound also like a good idea,  at least we could give it a try. We
could get a prioritization for the dev work out of this.
Post by Gilles
Weird. Here it is on another site : https://ibb.co/mWEQ1S
This one worked!

Happy Coding,
Chris
Kees Nuyt
2018-02-15 13:52:29 UTC
Permalink
On Thu, 15 Feb 2018 12:04:54 +0100, Gilles
<***@free.fr> wrote:

[...]
Post by Gilles
Out of curiosity, is there a way to compile the Fossil EXE into a DLL,
so as to make it easier to interact with it from a GUI application
instead of the CLI?
https://www.fossil-scm.org/xfer/doc/trunk/www/build.wiki
This will be hard to achieve, because fossil does not clean up
memory after every action but rather relies on clean-up by the
OS after exit.

Stephan Beal started project libfossil :
http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/wiki/home
, but he is physically unable to complete it.

You can find messages in the mailinglist archives
of 2013..2016, e.g.

Date: Tue, 12 Jan 2016 20:22:28 +0100
Message-ID:

<CAKd4nAgoq0vwefnGYYHLuY2wMUL0h=y-0XKn8f4B+fReRk+***@mail.gmail.com>
From: Stephan Beal <***@googlemail.com>
To: fossil-users <fossil-***@lists.fossil-scm.org>
Subject: [fossil-users] Semi-annual drumming-up-of-support for
libfossil
--
Regards,
Kees Nuyt
Gilles
2018-02-16 18:07:28 UTC
Permalink
Chris Drexler Fri, 16 Feb 2018 08:32:40 -0800 > I've never tried the
beta zip. Which version of fossil is packaged in there?

It was 1.33. Replacing it with 2.5 did the trick.

Thanks!

Loading...