Re: [fossil-users] JSON/wiki: what info needs to be returned for...

2011-09-19 Thread Martin S. Weber

On 09/17/11 08:35, Richard Hipp wrote:

(Aside:  Should we create a new fossil-dev mailing list for this kind of
thing, and preserve fossil-user for use by people who just want to use
Fossil and don't really care what is happening behind the scenes?)


Yes please :)

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


[fossil-users] /json/dir output format?

2011-09-19 Thread Stephan Beal
Hi, all!

Which data format would you prefer to see in the up-coming /json/dir output:

#1:

{ "subdirs":[ "list", "of", "subdirs"],
  "files": ["list", "of", "files" ]
}

#2a:

[ {"name":"subdir1", "type":"d"},
  {"name":"file1.txt", "type":"f"}
  ...
]

#2b:

[ {"name":"subdir1", "isDir":true},
  {"name":"file1.txt"}
  ...
]


#3: something entirely different?

Which would be simplest to use from client code while still being flexible
enough for more complex cases?

:-?

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
___
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] /json/dir output format?

2011-09-19 Thread Martin S. Weber

On 09/19/11 13:19, Stephan Beal wrote:

#3: something entirely different?


 :) I'm missing the recursive structure somewhat. Maybe it's just me. I like 
 recursion.


{ "name": "subdir1", "content": [  ], "type": "{x in 
link,file,directory}" }


file content: empty (or ? )
link content: file link
dir content: file/dir/link content list

lends naturally to relative operations this way.

Why #3 rather than #1/2a/b ?:

I don't like #1 because it misses links, and includes (has to) the whole path. 
I think (guess, believe, ...) that relative operations are more often than 
absolute operations (display, move, annotate, search, ...)


I don't like #2a because of the abbreviations. It's json, not a single byte 
unix encoding necessity or something we're talking about here.


I don't like #2b because of a mix of above reasons ;)

Of course that also encodes my personal taste of things, which definitely 
plays a role in the rationale above and Your Mileage May Vary as they say (or 
your taste :)


-Martin
___
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] /json/dir output format?

2011-09-19 Thread Ron Wilson
On Mon, Sep 19, 2011 at 1:19 PM, Stephan Beal  wrote:
> Hi, all!
> Which data format would you prefer to see in the up-coming /json/dir output:

If outputing the content of a single directory, then my first
preference is #1. My second preference is #2a.

If multiple directories are being listed, then I would prefer a
recursive version of #1. My second preference would be a recursive
version of #2a.

Also, I would like an option for having symbolic links distinguished
from ordinary file/directory entries.
___
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] /json/dir output format?

2011-09-19 Thread Stephan Beal
On Mon, Sep 19, 2011 at 8:07 PM, Ron Wilson  wrote:

> If multiple directories are being listed, then I would prefer a
> recursive version of #1. My second preference would be a recursive
> version of #2a.
>

Once we decide on a format for one entry, recursion will come (as an option
to the HTTP request) almost for free (in terms of effort needed to add it)
and the sub-elements will be structured under their parent dir. This will
allow us to selectively pull a specific dir (or sub-sub-dir), optionally
including all subdirs. e.g. something like /json/dir?maxDepth=3 (default=0,
no recursion). i suspect that having it recursive by default would unduly
overload the server and many clients (think "mobile phones").

There's no reason we can't use different structures for file/dir/link, with
the caveat that they have to have one property in common  so that clients
can tell what the rest of the structure should look like (e.g. type=...
would do fine).

@Martin: we're of course not restricted to single-letter flags. "file",
"dir", and "link" (or "symlink") would be fine. "directory" seems a bit
verbose, but i wouldn't argue against it on any grounds other than it's
verbosity.


Also, I would like an option for having symbolic links distinguished
> from ordinary file/directory entries.
>

Good idea. That rules out #2b unless we want multiple flags (i'd prefer, but
not strongly, to only have one flag, e.g. type="dir|file|link").

On a related note: i just committed /json/wiki/list, which simply returns an
Array of page names.

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Feature request: edit files via web interface

2011-09-19 Thread Marco Maggesi
Hello,

often I would find very useful to edit versioned files trough the web interface.

Would you consider to add such a feature?

Thanks,
M.
___
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] Feature request: edit files via web interface

2011-09-19 Thread Stephan Beal
On Mon, Sep 19, 2011 at 9:48 PM, Marco Maggesi wrote:

> often I would find very useful to edit versioned files trough the web
> interface.
>
> Would you consider to add such a feature?
>

That's an oft-requested (maybe the most-requested?) feature, actually. One
of the eventual planned features of the up-coming JSON API would be
performing a commit. (This can't work nicely with binary data, but that's a
limitation we can live with.) Once that is in place (it won't be very soon,
but it's planned) editing non-wiki (text) files like this could be added to
the HTML interface without any significant changes in the core app (just a
pretty page to wrap the JSON API calls in).

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
___
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] Feature request: edit files via web interface

2011-09-19 Thread Joshua Paine

On 9/19/2011 3:57 PM, Stephan Beal wrote:

One of the eventual planned features of the up-coming JSON API
would be performing a commit. (This can't work nicely with binary data,
but that's a limitation we can live with.)


If you support base64 encoding, then it leaves open the possibility for 
people to build binary file capabilities later (e.g., canvas-based image 
editor or some completely-non-web-browser integration).


Also, I wonder if stash commands could be manipulated to put together 
multi-file commits.


--
Joshua Paine
LetterBlock: Web Applications Built With Joy
http://letterblock.com/
301-576-1920
___
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] Feature request: edit files via web interface

2011-09-19 Thread Stephan Beal
On Mon, Sep 19, 2011 at 11:48 PM, Joshua Paine wrote:

> If you support base64 encoding, then it leaves open the possibility for
> people to build binary file capabilities later (e.g., canvas-based image
> editor or some completely-non-web-browser integration).
>

i'd like to (at least initially) not consider binary data, nor any features
which require that a given client implement (correctly) any given decoding
algorithm other than JSON. Any time any algo is added to the client-side
interface, the portability drops.

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
___
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] Feature request: edit files via web interface

2011-09-19 Thread Joshua Paine

On 9/19/2011 5:54 PM, Stephan Beal wrote:

i'd like to (at least initially) not consider binary data, nor any
features which require that a given client implement (correctly) any
given decoding algorithm other than JSON. Any time any algo is added to
the client-side interface, the portability drops.


base64 encoding turns binary data into an ASCII-safe (and hence 
UTF8-safe) string, so it could be used to prepare binary data for 
transmission as a JSON value of string type. Clients could safely treat 
it as just another string if they don't understand base64 encoding.


I'm not trying to tell you what you have to implement, but supporting 
base64 for sending and/or receiving binary data doesn't really add much 
to the complexity of the API or client requirements.


--
Joshua Paine
LetterBlock: Web Applications Built With Joy
http://letterblock.com/
301-576-1920
___
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] Feature request: edit files via web interface

2011-09-19 Thread Dmitry Chestnykh
> often I would find very useful to edit versioned files trough the web 
> interface.
> 
> Would you consider to add such a feature?

Some thoughts to consider about implementation are in this ticket:
http://www.fossil-scm.org/index.html/tktview?name=ad98e8f665

[ copying here for discussion: ]

dmitry added on 2011-01-20 14:01:59 UTC:
Here are some thoughts on implementation.

• Have "can edit on web" permission flag.
• Have special per-user staging area for edits from web, which records 
modifications to files.
• Once file(s) are edited, they're put into the user's staging area.
• User can commit his staging area if he has commit permission.
• Users without commit permissions, but with "can edit on web" 
permissions, can create tickets with modifications from their staging area or 
download their modifications as a patch.

This won't work for anonymous or other "group" users. For those Fossil can have 
per-file editing without staging area. Also, not sure how to handle merges.


--
Dmitry Chestnykh

___
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] Feature request: edit files via web interface

2011-09-19 Thread Stephan Beal
On Tue, Sep 20, 2011 at 12:26 AM, Joshua Paine wrote:

> base64 encoding turns binary data into an ASCII-safe (and hence UTF8-safe)
> string, so it could be used to prepare binary data for transmission as a
> JSON value of string type. Clients could safely treat it as just another
> string if they don't understand base64 encoding.
>

But they're then limited by what they can do with it. base64 is useless if
you don't have a decoder.


> I'm not trying to tell you what you have to implement, but supporting
> base64 for sending and/or receiving binary data doesn't really add much to
> the complexity of the API or client requirements.


To the C side it's pretty easy, but adding any sort of encoding inherently
limits the clients which can use it. There is no reference implementation of
base64 for JS, for example (there are impls, though), and JS cannot natively
deal with binary data (that's coming in v5 or whatever new version is coming
soon). Storing binary bytes in a JS string provides undefined results. The
primary clients (mine, at least) will be JS.

-- 
- stephan beal
http://wanderinghorse.net/home/stephan/
___
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] Feature request: edit files via web interface

2011-09-19 Thread Joshua Paine

Last I'll say on the subject, since this is your code after all.

On 9/19/2011 7:15 PM, Stephan Beal wrote:

But they're then limited by what they can do with it. base64 is useless
if you don't have a decoder.


But they're not any *more* limited than they are if you don't support 
binary at all.



To the C side it's pretty easy, but adding any sort of encoding
inherently limits the clients which can use it.


Well, unless you only use it for stuff that fossil treats as binary 
anyway, in which case no one's limited, because the alternative is not 
having access at all.



and JS cannot natively deal with binary data (that's coming in v5 or
whatever new version is coming soon).


Standard javascript doesn't have this ability yet, but individual impl 
have relevant capabilities. E.g., privileged JS in XUL has access to 
files and can get base64 strings from them, and the canvas element has a 
toDataURL method that returns base64 encoded data plus a tiny amount of 
metadata.


--
Joshua Paine
LetterBlock: Web Applications Built With Joy
http://letterblock.com/
301-576-1920
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users