hg
v0.3.3
Published
A Mercurial client for Node
Downloads
64
Readme
Node-hg
A node js command server client for Mercurial.
Installation
npm install hg
Example
var path = require("path");
var hg = require("hg");
// Clone into "../example-node-hg"
var destPath = path.resolve(path.join(process.cwd(), "..", "my-node-hg"));
hg.clone("http://bitbucket.org/jgable/node-hg", destPath, function(err, output) {
if(err) {
throw err;
}
output.forEach(function(line) {
console.log(line.body);
});
// Add some files to the repo with fs.writeFile, omitted for brevity
hg.add(destPath, ["someFile1.txt", "someFile2.txt"], function(err, output) {
if(err) {
throw err;
}
output.forEach(function(line) {
console.log(line.body);
});
var commitOpts = {
"-m": "Doing the needful"
};
// Commit our new files
hg.commit(destPath, commitOpts, function(err, output) {
if(err) {
throw err;
}
console.log(hg.Parsers.text(output));
});
// Get command output as JSON
hg.branches({"-T":"json"}, function(err, output) {
if(err) {
throw err;
}
var branches = hg.Parsers.json(output);
branches.forEach(function(b) {
console.log(b.branch + " - " + b.active);
});
});
});
});
Exposed Base Classes
HGRepo
The base class for Mercurial Repo interaction. The exposed API is just wrappers around the functions available in HGRepo
.
var hg = require("hg"),
HGRepo = hg.HGRepo;
var repo = new HGRepo("/some/path/to/repo");
repo.summary(function(err, output) {
if (err) {
throw err;
}
output.forEach(function(line) {
console.log(line.body);
});
});
repo.add(["."], function(err, output) {
if (err) {
throw err;
}
output.forEach(function(line) {
console.log(line.body);
});
});
// And so on...
HGCommandServer
The base class responsible for instantiating and communicating with a Mercurial command server. Must be instantiated in an existing Mercurial repository (check out HGRepo.MakeTempRepo
to quickly get a temporary repo up)
var hg = require("hg"),
HGCommandServer = hg.HGCommandServer;
var serv = new HGCommandServer();
serv.start("/some/path/to/repo", function(err) {
if (err) {
throw err;
}
console.log("Command Server Started", serv.capabilities, serv.encoding);
serv.on("output", function(err, lines) {
lines.forEach(function(line) {
console.log(line.body);
});
});
serv.runcommand("summary");
});
Release Notes
0.3.1
Improvements
- Added definitions
0.2.2
Improvements
- Publish fix capabilities issue
0.2.0
Improvements
- Parser for JSON output
- Added commands
remove
branches
diff
LICENSE
MIT, No Attribution Required, Copyright 2013 Jacob Gable