Библиотека Mercurial HG для Node.js для локальных репозиториев - PullRequest
6 голосов
/ 10 января 2012

Я ищу библиотеку, написанную для Node.js, которую я смогу использовать для управления из веб-приложения моими локальными репозиториями, созданными в Mercurial HG.

Кто-нибудь реализовал что-то подобное?

Ответы [ 2 ]

7 голосов
/ 10 января 2012

Я никогда не слышал о такой библиотеке - она ​​не была объявлена ​​в нашем списке рассылки .Стабильным API для Mercurial является командная строка , поэтому я предлагаю просто запустить hg напрямую и проанализировать вывод.Он разработан так, чтобы его было легко обрабатывать на экране, и вы можете дополнительно настроить его, используя шаблоны .

6 голосов
/ 17 марта 2013

Я создал модуль, доступный на npm, который называется node-hg именно по этой причине.

Это оболочка для Командного сервера , которая выдает команды через stdin и анализирует вывод на stdout.

Вот пример того, как это работает:

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;
            }

            output.forEach(function(line) {
                console.log(line.body);
            });
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...