URL-адрес модуля хранится в .gitmodules
в корне вашей песочницы. Этот файл отслеживается как часть Git-репозитория. Если вы внесете изменения и подтвердите их, они будут видны другим пользователям репозитория Git.
Когда вы звоните git submodule sync
, а затем git submodule init
, URL-адрес разрешается и копируется в .git/config
. Когда вы звоните git submodule update
, подмодуль клонируется, и его URL также находится в .git/modules/<module-name>/config
.
Чтобы навсегда изменить URL, отредактируйте .gitmodules
и снова вызовите git submodule sync
и git submodule init
.
Чтобы временно изменить URL-адрес, вместо этого выполните следующие два изменения:
Измените URL-адрес в .git/config
для подмодуля
Войдите в подмодуль и вызовите:
git remote set-url origin <new-url-with-https>
Вторая команда обновит URL в .git/modules/<module-name>/config
, который является папкой .git
для субмодуля.
Платформа.NET предлагает очень хорошее универсальное решение для этого. Проверьте нижнюю часть этой статьи MSDN Magazine. Используйте StartupNextInstanceHandler () обработчик событий для передачи произвольных команд рабочему экземпляру, как "выход".
Это не по усложнению вещей? Вместо того, чтобы закрыть существующий экземпляр и запустить новый, Вы не можете только повторно активировать существующий экземпляр? Так или иначе вокруг кода ниже должен дать Вам некоторое представление относительно того, как пойти об этом...?
Process thisProcess = Process.GetCurrentProcess();
Process[] allProcesses = Process.GetProcessesByName(thisProcess.ProcessName);
Process otherProcess = null;
foreach (Process p in allProcesses )
{
if ((p.Id != thisProcess.Id) && (p.MainModule.FileName == thisProcess.MainModule.FileName))
{
otherProcess = p;
break;
}
}
if (otherProcess != null)
{
//note IntPtr expected by API calls.
IntPtr hWnd = otherProcess.MainWindowHandle;
//restore if minimized
ShowWindow(hWnd ,1);
//bring to the front
SetForegroundWindow (hWnd);
}
else
{
//run your app here
}
Существует другой вопрос об этом здесь
Это - несколько быстрое-и-грязное решение, которое Вы, вероятно, хотели бы совершенствовать:
[STAThread]
static void Main()
{
var me = Process.GetCurrentProcess();
var otherMe = Process.GetProcessesByName(me.ProcessName).Where(p => p.Id != me.Id).FirstOrDefault();
if (otherMe != null)
{
otherMe.Kill();
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Если экземпляр приложения уже запускается, тот процесс уничтожается; иначе приложение обычно запускается.