TortoiseHg: Есть ли способ обновить значки из пакетного файла?
Я обнаружил, что все время обновляю значки из меню TortoiseHg, и я хотел бы запустить обновление значков из командного файла, заранее спасибо
TortoiseHg: Есть ли способ обновить значки из пакетного файла?
Я обнаружил, что все время обновляю значки из меню TortoiseHg, и я хотел бы запустить обновление значков из командного файла, заранее спасибо
Вроде. Вам нужно открыть определенный именованный канал, а затем отправить команду. Насколько я знаю, для этого вам придется написать (по общему признанию, очень маленький) скрипт или приложение, но тогда этот скрипт можно будет завернуть в пакетный файл.
Имя канала:
TortoiseHgRpcServer-bc0c27107423-[username]
(для компьютера, на котором я это пишу, это TortoiseHgRpcServer-bc0c27107423-nholley)
Команда:
update|[path-to-update]
(поэтому в моем тесте используется update|c:\projects\scripts)
Короткое приложение командной строки C # для этого:
using System;
using System.IO;
using System.IO.Pipes;
namespace NamedPipeTest
{
class Program
{
static void Main(string[] args)
{
var username = Environment.UserName;
using (var pipe = new NamedPipeClientStream("TortoiseHgRpcServer-bc0c27107423-" + username))
{
try
{
pipe.Connect(1000);
using (var sw = new StreamWriter(pipe))
{
sw.Write("update|" + args[0]);
}
}
catch (TimeoutException ex)
{
Console.WriteLine("Named pipe could not be found. Please restart TortoiseHgOverlayServer");
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
}
}
Это должно, по крайней мере, заставить вас начать. Стоит отметить, что оболочка проводника, кажется, вызывает удаление|[путь] с последующим обновлением|[путь], но я не могу сказать, что шаг удаления действительно необходим, и когда я попытался сделать это в приведенной выше программе, я получил Исключение «Канал сломан» после второй команды, хотя команда действительно дошла до сервера оверлея. Кто-то, кто знает больше об именованных каналах, вероятно, мог бы легко это исправить.
Если вы хотите узнать больше, взгляните на https://bitbucket.org/tortoisehg/thg/src/bcf0eaf6db6a/TortoiseHgOverlayServer.py
Ух, это было весело!
изменить: использовать правильные ключевые слова для языка и добавить немного больше проверки ошибок.