Вы не можете поделиться конфигурацией Git самой Git. Вы должны сами управлять общим доступом, используя общую файловую систему. Тогда вы можете просто сделать символическую ссылку на общий конфиг.
В качестве альтернативы вы можете создать версию общего Git-конфигурации в отдельном репозитории Git . Но обратите внимание, что конфигурация Git этого репозитория (не та, что в вашей рабочей копии) снова будет локальной.
Поскольку вы просто хотите инициализировать все подмодули, я бы порекомендовал сделать это вручную в CLI. Большая часть графического интерфейса Git делает это автоматически. Поэтому я рекомендую не задумываться о совместном использовании конфигурации Git.
I took your code put it in a console app and ran it with no errors, got the hash and the test file is deleted at the end of execution? I just used the .pdb from my test app as the file.
What version of .NET are you running?
I am putting the code that I have that works here, and if you put this in a console app in VS2008 .NET 3.5 sp1 it runs with no errors (at least for me).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace lockTest
{
class Program
{
static void Main(string[] args)
{
string hash = GetHash("lockTest.pdb");
Console.WriteLine("Hash: {0}", hash);
Console.ReadKey();
}
public static string GetHash(string pathSrc)
{
string pathDest = "copy_" + pathSrc;
File.Copy(pathSrc, pathDest, true);
String md5Result;
StringBuilder sb = new StringBuilder();
MD5 md5Hasher = MD5.Create();
using (FileStream fs = File.OpenRead(pathDest))
{
foreach (Byte b in md5Hasher.ComputeHash(fs))
sb.Append(b.ToString("x2").ToLower());
}
md5Result = sb.ToString();
File.Delete(pathDest);
return md5Result;
}
}
}
Вы пытались также обернуть свой объект MD5 в использование ()? Из документов MD5 является одноразовым. Это может заставить его отказаться от файла.
Вы пытались установить для md5Hasher значение null перед удалением файла? Вероятно, к FileStream все еще привязан дескриптор (возможно, утечка памяти).
Почему бы не открыть файл с помощью FileShare.ReadWrite?
md5hasher.Clear() after your loop might do the trick.