Size: 3297
Comment:
|
Size: 273
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
'''C-Hglib''' A C library for interfacing with Mercurial's CommandServer. <<TableOfContents>> == Getting the source == You can clone the packeage from its primary repository [[https://bitbucket.org/istana/c-hglib|c-hglib]]. == First plan == Some steps that I want to do first: * create an open mechanism between Client (C library) and Server ( Mercurial Command Server) * close the connection * readchannel function that will get the channel and the length of message. * create the _hello function, that will receive the first message, after the connection. * cmdbuilder, will compute the command that will be sent to CommandServer. * runcommand, will send the build command to the server and will return the compute message. * mercurial commands. How to make it happen: *Create an open mechanism between Client (C library) and Server ( Mercurial Command Server) *First I will try to compute a command that will be execute in the child process. *It will be of the form “HGPATH serve --cmdserver pipe --config ui.interactive=True” + “-R path ” *I will create two pipes for the bidirectional connection. Then I will fork a new process, where I’ll execute the command that will open the Command Server. In the child process I will redirect the input, the output and the error in to the pipes (for the communication Client-Server). In my case the child process will open the Command Server and the parent process will be the client. *The communication will be through the pipes descriptors. *The open function will return a Client structure that will contain the pipes descriptors and other useful information. *Close the connection *Will kill the command server and will close the pipe descriptors for a specific Client. *readchannel function that will get the channel and the length of message. *Will read a char (the channel) and a uint (the length). There are chances for a problem to occur over here with the unsigned integer (the Command Server will send to me an integer in big endian form). *Most probably I will have to create a conversion mechanism. *create the _hello function that will receive the first message, after the connection. *This function will read the channel and the default data. Then I will check the correctness of data. *cmdbuilder, will compute the command that will be sent to CommandServer. *This function will return a list with a compute command that will be send to CommandServer. This function will be called by all mercurial commands. *runcommand, will send the build command to the server and will return the compute message. *From this function I will sent through pipes the commands and I will receive the specific answers. This will be the function that will make the communication. == My starts points will be == *[[http://mercurial.selenic.com/wiki/CommandServer|CommandServer]] *[[http://www.selenic.com/repo/python-hglib/file/ca5f8f43e585/|python-hglib]] *[[http://bitbucket.org/yuja/chg/src|chg]] == Directory tree == . ├── hglib │ ├── main.c │ ├── Makefile.am │ ├── utils.c │ └── utils.h ├── Makefile.am ├── README.md └── tests └── Makefile.am |
Santa Rosa-born Dia Foster is hooked on [[https://www.teamgeorgiawrestling.com/index.php?option=com_blog&view=comments&pid=574689&Itemid=0|Spain weather June,]] rc vehicles, rocking aids babies. And lastly she's captivated by spending precious time with her nearest pals. |
Santa Rosa-born Dia Foster is hooked on Spain weather June, rc vehicles, rocking aids babies. And lastly she's captivated by spending precious time with her nearest pals.