Discussion:
New Fossil GUI: Requesting Feature
(too old to reply)
Paulus Tuerah
2014-03-30 04:05:56 UTC
Permalink
Hi all,
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
I
want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
But what prevent me to use fossil is: there is no usable Fossil GUI similar like TortoiseSVN.

So right now I've made my own Fossil GUI that contains only fossil command I need to replace my old SVN flow.
Right now I'm testing it, and so far so good until I try to commit many files at once.
I use, fossil commit ...files..., since in the GUI I can select which file I want to commit (just like in TortoiseSVN).
The problem is if there are many files, the command is too long (fossil commit a.txt b.txt c.txt ......) and got error.
If I commit partially it's
okay, but of course I can't commit partially.

So is it possible for fossil commit to have new option --commit-file files.txt, similar like --message-file msg.txt?
Then the command would be:
fossil commit --commit-file files.txt

Also the same case with fossil add, delete, diff, gdiff, revert

This is my Fossil Form Commit GUI:
Loading Image...

Regards,
-Paul
Stephan Beal
2014-03-30 08:07:10 UTC
Permalink
Post by Paulus Tuerah
Hi all,
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
Welcome aboart!
Post by Paulus Tuerah
I want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
But what prevent me to use fossil is: there is no usable Fossil GUI
similar like TortoiseSVN.
We're still a long way from having such a thing. There is a library
interface for fossil in development, but i would guess (as its main
developer) that we're a year or so away from being able to fully support an
application like Tortoise.
Post by Paulus Tuerah
The problem is if there are many files, the command is too long (fossil
commit a.txt b.txt c.txt ......) and got error.
If I commit partially it's okay, but of course I can't commit partially.
That's a limit of Windows, unfortunately - most platforms have very large
limits for command arguments.
Post by Paulus Tuerah
So is it possible for fossil commit to have new option --commit-file
files.txt, similar like --message-file msg.txt?
fossil commit --commit-file files.txt
Also the same case with fossil add, delete, diff, gdiff, revert
You can do that already using a little known feature:

fossil ... --args FILENAME

each line represents one filename or --key VALUE pair for the arguments
list.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Paulus Tuerah
2014-03-30 15:50:26 UTC
Permalink
Thanks Stephan!It works perfectly! :)

Right now I'm still testing my GUI.

And I found out that:

  fossil gdiff --from "version1" --to "version2" "path/file.txt"

The filename is screwed up, instead of "file.txt" the filename is random text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for version2.

If without version, the filename is correct:
  fossil gdiff "path/file.txt"

"file.txt~0" for baseline version and "file.txt" for working copy version.

Is this bugs, or is there a way to specify the filename?


Also I found out strange thing for renaming a file:
  fossil rename "file-a.txt" "file-b.txt"
The timeline only mention that file-a.txt is deleted, and about file-b.txt is not mentioned:
  DELETED file-a.txt

Then the history of file-a.txt is gone:

  fossil finfo --width 0 "file-a.txt"
  => no history for file: file-a.txt
If I add a new file-a.txt that not related with the previous file-a.txt, if I check the history:
  fossil finfo --width 0 "file-a.txt"
  => it will show all history of file-a.txt again
If I check history of file-b.txt, it is not going back to history file-a.txt

The conclusion, renaming file is same like delete old.file, and add new.file.
The history is not retained and linked between the old.file and new.file.

Is true renaming in fossil is not implemented?


Will do more tests later, if everything works as expected maybe I will publish it if someone interested in using GUI.
This Fossil GUI is made by Java, in theory should work on any system, but I only test it in Windows.
And these are what implemented right now:
- new, clone, open
- commit (add, delete, revert, rename, diff, push)

- update (diff, pull)
- timeline / finfo
- undo / redo
- web ui
- annotate / blame
- rebuild

branch / merge is not implemented, because I never use it even in SVN.

Regards,
-Paul
Post by Paulus Tuerah
Hi all,
Post by Paulus Tuerah
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
Welcome aboart!
 
I want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
Post by Paulus Tuerah
Post by Paulus Tuerah
But what prevent me to use fossil is: there is no usable Fossil GUI similar like TortoiseSVN.
We're still a long way from having such a thing. There is a library interface for fossil in development, but i would guess (as its main developer) that we're a year or so away from being able to fully support an application like Tortoise.
 
The problem is if there are many files, the command is too long (fossil commit a.txt b.txt c.txt ......) and got error.
Post by Paulus Tuerah
If I commit partially it's
okay, but of course I can't commit partially.
Post by Paulus Tuerah
That's a limit of Windows, unfortunately - most platforms have very large limits for command arguments.
 
 
So is it possible for fossil commit to have new option --commit-file files.txt, similar like --message-file msg.txt?
Post by Paulus Tuerah
fossil commit --commit-file files.txt
Also the same case with fossil add, delete, diff, gdiff, revert
fossil ... --args FILENAME
each line represents one filename or --key VALUE pair for the arguments list.
 
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Stephan Beal
2014-03-30 16:41:20 UTC
Permalink
Thanks Stephan! It works perfectly! :)
BTW: --args FILENAME works for all commands. It gets intercepted in the
very earliest steps of application startup.


Right now I'm still testing my GUI.
fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is random
text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for
version2.
After playing around a bit with it, i see what you mean. The random names
are there for your protection, but yes, they are pretty useless for
purposes of seeing the filename in the gdiff titlebar. i don't have a
solution/workaround. Maybe someone else can propose one.
fossil rename "file-a.txt" "file-b.txt"
The timeline only mention that file-a.txt is deleted, and about file-b.txt
DELETED file-a.txt
The timeline will show a rename:

http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/timeline?n=20&c=2014-02-11+14:31:00&v

Scroll down to the commit mat at 14:31 on 20130211 to see many examples.
They also appear here:

http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/info/e85b45eda2

(search for "name change")
fossil finfo --width 0 "file-a.txt"
=> no history for file: file-a.txt
Because you've already made the commit and finfo with a filename works on
the current checkout version. That file isn't in your checkout, so it's
unknown. That's not very intuitive, but i don't currently see how fossil
could reasonably behave otherwise.

If I add a new file-a.txt that not related with the previous file-a.txt, if
fossil finfo --width 0 "file-a.txt"
=> it will show all history of file-a.txt again
If I check history of file-b.txt, it is not going back to history file-a.txt
finfo will stop the listing at the rename point, but the www UI shows a
link to the original name. See the bottom of this for an example:

http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/finfo?name=f-apps/f-sanity.c
The conclusion, renaming file is same like delete old.file, and add new.file.
The history is not retained and linked between the old.file and new.file.
Is true renaming in fossil is not implemented?
History and full rename info is retained. i think you're just confused by
the finfo behaviour described above (which is arguable but would introduce
ambiguities and irregularities in results if it behaved differently).
This Fossil GUI is made by Java, in theory should work on any system, but
I only test it in Windows.
- new, clone, open
...branch / merge is not implemented, because I never use it even in SVN.
Great! Post us a link and i'll try it on Linux.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Doug Franklin
2014-03-30 16:50:28 UTC
Permalink
Post by Paulus Tuerah
fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is
random text, i.e: "N2RzE1tMFYWZK31" for version1 and
"jcs3c2edtTUDs1g" for version2.
After playing around a bit with it, i see what you mean. The random
names are there for your protection, but yes, they are pretty useless
for purposes of seeing the filename in the gdiff titlebar. i don't have
a solution/workaround. Maybe someone else can propose one.
Perhaps adding the unique part as a suffix of the actual file name,
instead of replacing it?
--
Thanks,
DougF (KG4LMZ)
Stephan Beal
2014-03-30 16:53:47 UTC
Permalink
On Sun, Mar 30, 2014 at 6:50 PM, Doug Franklin
Post by Doug Franklin
Perhaps adding the unique part as a suffix of the actual file name,
instead of replacing it?
My _assumption_ is that it's not that way (or was once but was changed)
for security reasons. i don't remember seeing this before and i know i've
used gdiff before. However, since (diff -tk) was introduced, i can't say
i've used gdiff all that much.

@Paul: try this as a workaround: fossil diff -tk --from ... --to ...
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
s***@gmail.com
2014-03-30 17:14:23 UTC
Permalink
Thanks for mentioning 'fossil anycmd --args FILENAME'!
Is there a url that describes this in detail?
This helps especially with 'fossil add'.


On Sun, Mar 30, 2014 at 12:50 PM, Doug Franklin
Post by Doug Franklin
Post by Paulus Tuerah
fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is
random text, i.e: "N2RzE1tMFYWZK31" for version1 and
"jcs3c2edtTUDs1g" for version2.
After playing around a bit with it, i see what you mean. The random
names are there for your protection, but yes, they are pretty useless
for purposes of seeing the filename in the gdiff titlebar. i don't have
a solution/workaround. Maybe someone else can propose one.
Perhaps adding the unique part as a suffix of the actual file name,
instead of replacing it?
--
Thanks,
DougF (KG4LMZ)
_______________________________________________
fossil-users mailing list
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Richard Hipp
2014-03-30 16:59:38 UTC
Permalink
Post by Paulus Tuerah
Right now I'm still testing my GUI.
Post by Paulus Tuerah
fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is random
text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for
version2.
After playing around a bit with it, i see what you mean. The random names
are there for your protection, but yes, they are pretty useless for
purposes of seeing the filename in the gdiff titlebar. i don't have a
solution/workaround. Maybe someone else can propose one.
The difficulty here is that "gdiff" uses any of several 3rd-party external
diff tools that all have different way sof specifying the real filename,
and which we do not have control over.

If you say:

fossil diff --tk --from version1 --to version2 path/file.txt

Then the Tcl/Tk graphical diff tool that is built into Fossil is used. And
we do have control over it. And it does show the correct filename.

For the --tk option to work, you need Tcl/Tk installed on your system.
Linux and Mac have this by default usually, I think. It's a simple
(compact, fast, and unintrusive) installer for Windows.
--
D. Richard Hipp
***@sqlite.org
Ron Wilson
2014-03-31 15:48:58 UTC
Permalink
Post by Stephan Beal
Because you've already made the commit and finfo with a filename works on
the current checkout version. That file isn't in your checkout, so it's
unknown. That's not very intuitive, but i don't currently see how fossil
could reasonably behave otherwise.
Perhaps a better error message, like say "file_a.ext does not exit in
current working space".

But then, why not look up the file in the repository even if it's not in
the current working space?
Post by Stephan Beal
History and full rename info is retained. i think you're just confused by
the finfo behaviour described above (which is arguable but would introduce
ambiguities and irregularities in results if it behaved differently).
Renamed files have been a problem in every VCS I've ever used, even hugely
expensive commercial systems. Moved files even more so. Unfortunately, the
only people I know who might be able to come up with a solution work for
companies who consider projects like Fossil or Git as competitors, so their
employment contracts prevent them from contributing.
Stephan Beal
2014-03-31 15:52:43 UTC
Permalink
Post by Ron Wilson
But then, why not look up the file in the repository even if it's not in
the current working space?
That could lead to ambiguities or inconsistent results. Assume i have
file1, then move it to foo/file1, then move bar/file2 to /file1. Which
file1 do i want when i use finfo?
Post by Ron Wilson
Renamed files have been a problem in every VCS I've ever used, even hugely
expensive commercial systems. Moved files even more so. Unfortunately, the
only people I know who might be able to come up with a solution work for
companies who consider projects like Fossil or Git as competitors, so their
employment contracts prevent them from contributing.
i suspect that many of the related problems are philosophical ones without
100% correct answers (like the above file1 case). Of the SCMs i've used
extensively (CVS, SVN, Fossil), fossil easily handles renames/moves most
sanely, IMO. i assume git handles them just as well, but have no experience
with that feature in git.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Paulus Tuerah
2014-03-30 16:42:16 UTC
Permalink
This is the main form.
Loading Image...


So far all features I need is completed.
Starting to test with actual project. 

Regards,
-Paul

On Sunday, March 30, 2014 10:50 PM, Paulus Tuerah <***@yahoo.com> wrote:

Thanks Stephan!It works perfectly! :)
Post by Paulus Tuerah
Right now I'm still testing my GUI.
  fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is random text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for version2.
  fossil gdiff "path/file.txt"
"file.txt~0" for baseline version and "file.txt" for working copy version.
Is this bugs, or is there a way to specify the filename?
  fossil rename "file-a.txt" "file-b.txt"
  DELETED file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => no history for file: file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => it will show all history of file-a.txt again
If I check history of file-b.txt, it is not going back to history file-a.txt
The conclusion, renaming file is same like delete old.file, and add new.file.
The history is not retained and linked between the old.file and new.file.
Is true renaming in fossil is not implemented?
Will do more tests later, if everything works as expected maybe I will publish it if someone interested in using GUI.
This Fossil GUI is made by Java, in theory should work on any system, but I only test it in Windows.
- new, clone, open
- commit (add, delete, revert, rename, diff, push)
- update (diff, pull)
- timeline / finfo
- undo / redo
- web ui
- annotate / blame
- rebuild
branch / merge is not implemented, because I never use it even in SVN.
Regards,
-Paul
Post by Paulus Tuerah
Hi all,
Post by Paulus Tuerah
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
Welcome aboart!
 
I want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
Post by Paulus Tuerah
Post by Paulus Tuerah
Post by Paulus Tuerah
But what prevent me to use fossil is: there is no usable Fossil GUI similar like TortoiseSVN.
We're still a long way from having such a thing. There is a library interface for fossil in development, but i would guess (as its main developer) that we're a year or so away from being able to fully support an application like Tortoise.
 
The problem is if there are many files, the command is too long (fossil commit a.txt b.txt c.txt ......) and got error.
Post by Paulus Tuerah
If I commit partially it's
okay, but of course I can't commit partially.
Post by Paulus Tuerah
Post by Paulus Tuerah
That's a limit of Windows, unfortunately - most platforms have very large limits for command arguments.
 
 
So is it possible for fossil commit to have new option --commit-file files.txt, similar like --message-file msg.txt?
Post by Paulus Tuerah
fossil commit --commit-file files.txt
Also the same case with fossil add, delete, diff, gdiff, revert
fossil ... --args FILENAME
each line represents one filename or --key VALUE pair for the arguments list.
 
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Paulus Tuerah
2014-03-30 17:20:36 UTC
Permalink
Post by Stephan Beal
BTW: --args FILENAME works for all commands. It gets intercepted in the
very earliest steps of application startup.
What do you mean by intercepted? Is it mean it override all the other parameters?
I mean: fossil command -optiona -optionb --args filename
Means optiona and optionb is replaced?
For add, delete, revert, I've tried it and it works too, so everything is good now :)
Post by Stephan Beal
try this as a workaround: fossil diff -tk --from ... --to ...
This is the output:

  'tclsh' is not recognized as an internal or external command,
  operable program or batch file.

This GUI I made don't use web at all.

What kind of protection is it in making random filename on gdiff?


I see, in the web ui the rename is working as expected.
But how can I get that information from the command line parameter? 
fossil timeline only show the deleted file, not mention that it is renamed not deleted.

I want to show the log all from my GUI, not using the fossil web ui at all.
My plan is the web ui is only for changing settings, wiki, ticket, bug tracker, for the version control support everything is from my GUI.

Ok I'll post the link to try it out later after I do more tests.



Thanks,
-Paul

On Sunday, March 30, 2014 11:42 PM, Paulus Tuerah <***@yahoo.com> wrote:

This is the main form.
Post by Stephan Beal
http://goldenstudios.no-ip.biz/user%20upload/fossilmain.JPG
So far all features I need is completed.
Starting to test with actual project. 
Regards,
-Paul
Thanks Stephan!It works perfectly! :)
Post by Paulus Tuerah
Right now I'm still testing my GUI.
  fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is random text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for version2.
  fossil gdiff "path/file.txt"
"file.txt~0" for baseline version and "file.txt" for working copy version.
Is this bugs, or is there a way to specify the filename?
  fossil rename "file-a.txt" "file-b.txt"
  DELETED file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => no history for file: file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => it will show all history of file-a.txt again
If I check history of file-b.txt, it is not going back to history file-a.txt
The conclusion, renaming file is same like delete old.file, and add new.file.
The history is not retained and linked between the old.file and new.file.
Is true renaming in fossil is not implemented?
Will do more tests later, if everything works as expected maybe I will publish it if someone interested in using GUI.
This Fossil GUI is made by Java, in theory should work on any system, but I only test it in Windows.
- new, clone, open
- commit (add, delete, revert, rename, diff, push)
- update (diff, pull)
- timeline / finfo
- undo / redo
- web ui
- annotate / blame
- rebuild
branch / merge is not implemented, because I never use it even in SVN.
Regards,
-Paul
Post by Paulus Tuerah
Hi all,
Post by Paulus Tuerah
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
Welcome aboart!
 
I want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
Post by Stephan Beal
Post by Paulus Tuerah
Post by Paulus Tuerah
Post by Paulus Tuerah
But what prevent me to use fossil is: there is no usable Fossil GUI similar like TortoiseSVN.
We're still a long way from having such a thing. There is a library interface for fossil in development, but i would guess (as its main developer) that we're a year or so away from being able to fully support an application like Tortoise.
 
The problem is if there are many files, the command is too long (fossil commit a.txt b.txt c.txt ......) and got error.
Post by Paulus Tuerah
If I commit partially it's
okay, but of course I can't commit partially.
Post by Stephan Beal
Post by Paulus Tuerah
Post by Paulus Tuerah
That's a limit of Windows, unfortunately - most platforms have very large limits for command arguments.
 
 
So is it possible for fossil commit to have new option --commit-file files.txt, similar like --message-file msg.txt?
Post by Paulus Tuerah
fossil commit --commit-file files.txt
Also the same case with fossil add, delete, diff, gdiff, revert
fossil ... --args FILENAME
each line represents one filename or --key VALUE pair for the arguments list.
 
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Paulus Tuerah
2014-03-30 17:39:26 UTC
Permalink
Post by Richard Hipp
The difficulty here is that "gdiff" uses any of several 3rd-party external
diff tools that all have different way sof specifying the real filename,
and which we do not have control over.
Why if I don't specify the version it shows the filename correctly?
  fossil gdiff "path/file.txt"
"file.txt~0" for baseline version and "file.txt" for working copy version.


Only if I specify the version, the filename is messed up:
  fossil gdiff --from "version1" --to "version2" "path/file.txt"


I use TortoiseMerge for the 3rd-party external diff tools.

Regards,
-Paul
Post by Richard Hipp
BTW: --args FILENAME works for all commands. It gets intercepted in the
Post by Stephan Beal
very earliest steps of application startup.
What do you mean by intercepted? Is it mean it override all the other parameters?
I mean: fossil command -optiona -optionb --args filename
Means optiona and optionb is replaced?
For add, delete, revert, I've tried it and it works too, so everything is good now :)
Post by Stephan Beal
try this as a workaround: fossil diff -tk --from ... --to ...
  'tclsh' is not recognized as an internal or external command,
  operable program or batch file.
This GUI I made don't use web at all.
What kind of protection is it in making random filename on gdiff?
I see, in the web ui the rename is working as expected.
But how can I get that information from the command line parameter? 
fossil timeline only show the deleted file, not mention that it is renamed not deleted.
I want to show the log all from my GUI, not using the fossil web ui at all.
My plan is the web ui is only for changing settings, wiki, ticket, bug tracker, for the version control support everything is from my GUI.
Ok I'll post the link to try it out later after I do more tests.
Thanks,
-Paul
This is the main form.
Post by Stephan Beal
http://goldenstudios.no-ip.biz/user%20upload/fossilmain.JPG
So far all features I need is completed.
Starting to test with actual project. 
Regards,
-Paul
Thanks Stephan!It works perfectly! :)
Post by Paulus Tuerah
Right now I'm still testing my GUI.
  fossil gdiff --from "version1" --to "version2" "path/file.txt"
The filename is screwed up, instead of "file.txt" the filename is random text, i.e: "N2RzE1tMFYWZK31" for version1 and "jcs3c2edtTUDs1g" for version2.
  fossil gdiff "path/file.txt"
"file.txt~0" for baseline version and "file.txt" for working copy version.
Is this bugs, or is there a way to specify the filename?
  fossil rename "file-a.txt" "file-b.txt"
  DELETED file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => no history for file: file-a.txt
  fossil finfo --width 0 "file-a.txt"
  => it will show all history of file-a.txt again
If I check history of file-b.txt, it is not going back to history file-a.txt
The conclusion, renaming file is same like delete old.file, and add new.file.
The history is not retained and linked between the old.file and new.file.
Is true renaming in fossil is not implemented?
Will do more tests later, if everything works as expected maybe I will publish it if someone interested in using GUI.
This Fossil GUI is made by Java, in theory should work on any system, but I only test it in Windows.
- new, clone, open
- commit (add, delete, revert, rename, diff, push)
- update (diff, pull)
- timeline / finfo
- undo / redo
- web ui
- annotate / blame
- rebuild
branch / merge is not implemented, because I never use it even in SVN.
Regards,
-Paul
Post by Paulus Tuerah
Hi all,
Post by Paulus Tuerah
I'm new to Fossil, and I'm coming from SVN world (using TortoiseSVN).
Welcome aboart!
 
I want to try DVCS, and after review some DVCS, I like the simplicity of
fossil, especially the one file executable and one file repository.
Post by Richard Hipp
Post by Stephan Beal
Post by Paulus Tuerah
Post by Paulus Tuerah
Post by Paulus Tuerah
But what prevent me to use fossil is: there is no usable Fossil GUI similar like TortoiseSVN.
We're still a long way from having such a thing. There is a library interface for fossil in development, but i would guess (as its main developer) that we're a year or so away from being able to fully support an application like Tortoise.
 
The problem is if there are many files, the command is too long (fossil commit a.txt b.txt c.txt ......) and got error.
Post by Paulus Tuerah
If I commit partially it's
okay, but of course I can't commit partially.
Post by Richard Hipp
Post by Stephan Beal
Post by Paulus Tuerah
Post by Paulus Tuerah
That's a limit of Windows, unfortunately - most platforms have very large limits for command arguments.
 
 
So is it possible for fossil commit to have new option --commit-file files.txt, similar like --message-file msg.txt?
Post by Paulus Tuerah
fossil commit --commit-file files.txt
Also the same case with fossil add, delete, diff, gdiff, revert
fossil ... --args FILENAME
each line represents one filename or --key VALUE pair for the arguments list.
 
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Stephan Beal
2014-03-30 17:50:35 UTC
Permalink
Post by Paulus Tuerah
Post by Stephan Beal
BTW: --args FILENAME works for all commands. It gets intercepted in the
very earliest steps of application startup.
What do you mean by intercepted? Is it mean it override all the other parameters?
I mean: fossil command -optiona -optionb --args filename
Means optiona and optionb is replaced?
For add, delete, revert, I've tried it and it works too, so everything is good now :)
IIRC, in general fossil takes the first instance, not the last. Haven't
tried it.
Post by Paulus Tuerah
Post by Stephan Beal
try this as a workaround: fossil diff -tk --from ... --to ...
'tclsh' is not recognized as an internal or external command,
operable program or batch file.
Right, Windows.
Post by Paulus Tuerah
What kind of protection is it in making random filename on gdiff?
You don't want to leak filenames to a publicly writable temp dir, for
example. Such details are "security relevant."
Post by Paulus Tuerah
I see, in the web ui the rename is working as expected.
But how can I get that information from the command line parameter?
i don't know off-hand. Never needed it.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Richard Hipp
2014-03-30 18:31:48 UTC
Permalink
Post by Paulus Tuerah
Post by Stephan Beal
try this as a workaround: fossil diff -tk --from ... --to ...
'tclsh' is not recognized as an internal or external command,
operable program or batch file.
Go to http://www.activestate.com/activetcl/downloads and download the
installer for your platform. Then run it. After that, "diff --tk" will
work for you.
--
D. Richard Hipp
***@sqlite.org
Ron Wilson
2014-03-31 15:28:49 UTC
Permalink
Post by Paulus Tuerah
I see, in the web ui the rename is working as expected.
But how can I get that information from the command line parameter?
fossil timeline only show the deleted file, not mention that it is renamed not deleted.
I want to show the log all from my GUI, not using the fossil web ui at all.
My plan is the web ui is only for changing settings, wiki, ticket, bug
tracker, for the version control support everything is from my GUI.
Fossil also has a JSON API, which might be easier to use for information
requests from the Fossil repository. Information about your working space
would still need to come either from the Fossil command line interface or
from libfossil. But, you would need to research how to call a C library
from Java.
Stephan Beal
2014-03-31 15:46:50 UTC
Permalink
Post by Ron Wilson
Fossil also has a JSON API, which might be easier to use for information
requests from the Fossil repository. Information about your working space
would still need to come either from the Fossil command line interface or
from libfossil. But, you would need to research how to call a C library
from Java.
Not necessarily - the JSON API was designed to be able to take its input
from the CLI or HTTP (because CLI is 10x easier for me to test!). So he
could call the fossil executable, pass the required flags, pipe in some
JSON data, and read the result in.

e.g.

fossil json --json-input FILENAME

is all you really need if the body of the given file contains enough
information for the request to be dispatched. Here's an example i used
during testing of the user-save features:

[***@host:~/cvs/fossil/fossil]$ cat j-u-save.json
{
"command": "user/save",
"payload":{
"uid":1,
"password": "x",
"name":"stephan",
"info": "http://wanderinghorse.net/home/stephan/"
}
}


The voluminous API docs can be found here:

https://docs.google.com/document/d/1fXViveNhDbiXgCuE7QDXQOKeFzf2qNUkBEgiUvoqFN4/view

feel free to post questions, suggestions, etc. e.g. i never was happy with
the 'dir' API's output and would like suggestions for how to improve it.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"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
Continue reading on narkive:
Loading...