Синхронизация SVK и запланированное задание

Я пытаюсь автоматизировать процесс синхронизации SVK.
После настройки зеркал SVK я написал командный файл со следующим

svk sync -a >> svk.log &2>1

затем я добавляю запланированное задание Windows, выполняемое под моей учетной записью администратора.

в svk.log читаю

Функция getpwuid не реализована в C:\Programmi\svk\bin\svk строка 142.

Любой намек?

ps я могу запустить svn sync -a из командной строки (тот же пользователь)

1 ответ

Решение

Когда я отправил свой вопрос, я не знал, что

  1. под Windows Scheduler HOMEDRIVE и HOMEPATH не инициализируются (http://tinyurl.com/9zxbrg8)
  2. Функция getpwuid недоступна в портах Windows для Perl (http://tinyurl.com/d56a2mv)

Имея вышесказанное, я изменил файл /bin/svk, изменив

$ENV{HOME} ||= (
    $ENV{HOMEDRIVE} ? catdir(@ENV{qw( HOMEDRIVE HOMEPATH )}) : ''
) || (getpwuid($<))[7];
$ENV{USER} ||= (
    (defined &Win32::LoginName) ? Win32::LoginName() : ''
) || $ENV{USERNAME} || (getpwuid($<))[0];

в

$ENV{HOME} ||= (
    $ENV{HOMEDRIVE} ? catdir(@ENV{qw( HOMEDRIVE HOMEPATH )}) : 
                      ($ENV{USERPROFILE} ? $ENV{USERPROFILE} : '')
);
$ENV{USER} ||= (
    (defined &Win32::LoginName) ? Win32::LoginName() : ''
) || $ENV{USERNAME};

и теперь я могу запустить мой пакетный вызов SVK в качестве запланированной задачи Windows

Другие вопросы по тегам