Through time I had received lots of question about C-hglib project.

I made this page to counter those question and to have them in a single place.

Initial commit mail (

  1. hg_handle* hg_open(const char *path, char *encoding, char *configs);

    • More const. Misplaced *. What is configs?
  2. What if we want to run a command without a repository, like init or clone?
  3. int hg_rawcommand(hg_handle *handle, const char *command);

    • How do we pass args with spaces?
  4. How do we get exit codes?
  5. How do we send input to a command like 'hg import -'?
  6. How do we handle interactive commands like merge?
  7. How do we get error output and warnings?

C-hglib – Level 0 , API proposal mail (

  1. What does this return? ( The return values for all API functions )
  2. int hg_close(hg_handle *handle);
    /* The function returns 0 if successful,
     * -1 to indicate an error, with errno set appropriately. */
    • What sorts of errors might we encounter?
  3. Story for :
    1. hg init <- doesn't start with a repo

      b. hg log <- can produce huge output

      c. hg import - <- wants a patch fed to it from client

      d. hg merge <- has prompts

      e. hg verify <- might give warnings intermixed with output

  4. Do you see the * on the left? ( pointer issue)
  5. How do I set encoding for the connection?
  6. Will this do the right thing? If so, how?(adding file with space issue)
  7. How do I get the prompt questions displayed to the user and get the user answers back?
  8. Limiting the amount of data sounds sensible, but why write it to a file? What about a cursor-like interface, similar to those returned by SQL queries?

Header patchbomb mail (

  1. Action-header, what is an action-header ?
  2. so wpipe is server stdin, rpipe is server stdout. Were have stderr been?
  3. "The repository in which I am", do you mean the first repository found in PWD hierarchy?
  4. What is the default encoding?

C-Hglib/Questions (last edited 2013-09-03 03:17:55 by KevinBot)