Differences between revisions 5 and 8 (spanning 3 versions)
Revision 5 as of 2013-08-07 11:20:18
Size: 1159
Editor: 188-26-48-157
Comment:
Revision 8 as of 2013-08-12 15:57:14
Size: 1927
Editor: 5-12-22-129
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
== First plan == Also you can take a look on c-hglib [[http://swarm.cs.pub.ro/~istana/c-hglib/html|documentation]].
Line 13: Line 13:
== Plan to build c-hglib ==
Line 14: Line 15:
== Reporting bugs == The implementation was split in three steps:
Line 16: Line 17:
Bugs can be reported on [[https://bitbucket.org/istana/c-hglib/issues?status=new&status=open|bitbucket-issue list]].  * level 0 also called row level
   * pass a raw command string, get unparsed results
 * level 1 also called command level
   * function per command, returns results in native C datatypes
 * level 2 also called "object" level
   * emulate important Mercurial internal APIs like contexts with a native C paradigm

For the moment level 0 is in the accepting phase, I need to get reviews before declared finished. You can see and review level 0 on this [[http://markmail.org/thread/hixvvvcpklfjnqze|patchbomb]].

Meanwhile I started to make a sketch for level 1. You can also see and comment on this sketch over [[http://markmail.org/message/pofplkyodyoxp5mq|here]].

I had made a sketch for level 1 [[http://bpaste.net/show/mLt3zmFSyKvmx0tY0Qpa|log_command]]
Line 28: Line 40:
│ └── level0.h │ └── level0.c
Line 40: Line 52:
== See also ==
 *[[http://mercurial.selenic.com/wiki/CommandServer|CommandServer]]
 *[[http://www.selenic.com/repo/python-hglib/file/ca5f8f43e585/|python-hglib]]
 *[[http://mercurial.selenic.com/wiki/MercurialApi|MercurialApi]]
== Reporting bugs ==
Bugs can be reported on [[https://bitbucket.org/istana/c-hglib/issues?status=new&status=open|bitbucket-issue list]].


== See also ==
 * CommandServer
 * MercurialApi
 * PythonHglib
 

C-Hglib

A C library for interfacing with Mercurial's CommandServer.

1. Getting the source

You can clone the packeage from its primary repository c-hglib.

Also you can take a look on c-hglib documentation.

2. Plan to build c-hglib

The implementation was split in three steps:

  • level 0 also called row level
    • pass a raw command string, get unparsed results
  • level 1 also called command level
    • function per command, returns results in native C datatypes
  • level 2 also called "object" level
    • emulate important Mercurial internal APIs like contexts with a native C paradigm

For the moment level 0 is in the accepting phase, I need to get reviews before declared finished. You can see and review level 0 on this patchbomb.

Meanwhile I started to make a sketch for level 1. You can also see and comment on this sketch over here.

I had made a sketch for level 1 log_command

3. My starts points will be

4. Directory tree

.
├── examples
│   └── level0.c
├── hglib
│   ├── main.c
│   ├── Makefile
│   ├── client.c
│   ├── client.h
│   ├── utils.c
│   └── utils.h
├── README.md
└── Makefile

5. Reporting bugs

Bugs can be reported on bitbucket-issue list.

6. See also

C-Hglib (last edited 2014-11-11 22:05:57 by rcl)