本文整理汇总了C#中LibGit2Sharp.Repository.UpdateSubmodules方法的典型用法代码示例。如果您正苦于以下问题:C# Repository.UpdateSubmodules方法的具体用法?C# Repository.UpdateSubmodules怎么用?C# Repository.UpdateSubmodules使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LibGit2Sharp.Repository
的用法示例。
在下文中一共展示了Repository.UpdateSubmodules方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
//.........这里部分代码省略.........
var serverBins = binOutputDirectory
.EnumerateFiles("*Server.exe", SearchOption.TopDirectoryOnly)
.ToArray();
if (serverBins.Any())
{
var serverAssembly = Assembly.LoadFile(serverBins.First().FullName);
var configurationAttribs =
serverAssembly.GetCustomAttributes(typeof (AssemblyConfigurationAttribute), false);
if (configurationAttribs.Any())
{
var configurationAttrib = (AssemblyConfigurationAttribute) configurationAttribs.First();
foreach (var commitHash in configurationAttrib.Configuration.Split(' ')
.Where(section => section.StartsWith("CommitHash="))
.Select(section => section.Split('=').Last()))
{
using (var repo = new Repository(sourceDirectory.FullName))
{
if (commitHash != repo.Head.Tip.Sha)
continue;
// Yup, same commit.
Console.WriteLine("Server is already up-to-date!");
return 0;
}
}
}
}
}
// Get submodules
using (var git = new Repository(sourceDirectory.FullName))
{
Console.WriteLine("Downloading dependencies...");
git.UpdateSubmodules();
}
// Patch AssemblyInfo.cs to include commit hash in an AssemblyConfigurationAttribute
Console.WriteLine("Patching assembly information...");
var assemblyGuidRegex =
new Regex(
@"^[\s]*\[assembly[\s]*:[\s]*Guid[\s]*\([\s]*(?<verbatimPrefix>[@]?)""(?<oldValue>.*?)""[\s]*\)[\s]*\][\s]*$",
RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
var assemblyConfigurationRegex =
new Regex(
@"^[\s]*\[assembly[\s]*:[\s]*AssemblyConfiguration[\s]*\([\s]*(?<verbatimPrefix>[@]?)""(?<oldValue>.*?)""[\s]*\)[\s]*\][\s]*$",
RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
foreach (var assemblyInfoFile in sourceDirectory
.EnumerateFiles("AssemblyInfo.cs", SearchOption.AllDirectories))
{
var sourceCode = File.ReadAllText(assemblyInfoFile.FullName);
// Parse GUID
var guid = assemblyGuidRegex.Match(sourceCode).Groups["oldValue"].Value;
if (!guid.Equals("b14ff4c2-a2e5-416b-ae79-4580cda4d9d1", StringComparison.OrdinalIgnoreCase))
{
//Console.WriteLine("\tSkipping assembly info for GUID \"{0}\" ({1}).", guid, assemblyInfoFile.Directory);
continue;
}
//Console.WriteLine("\tPatching assembly info for GUID \"{0}\" ({1}).", guid, assemblyInfoFile.Directory);
if (!assemblyConfigurationRegex.IsMatch(sourceCode))
{
sourceCode += Environment.NewLine;
sourceCode += @"// Inserted by CitizenMP Server Updater for version comparison";
sourceCode += @"[assembly: AssemblyConfiguration("""")]";
}