我正在使用libgit2sharp(libgit2的C#包装器)并且一直在遇到问题,因为它没有很多我希望的功能(希望我能尽快做出贡献;这看起来像是一个非常有用的项目)
我现在要做的是获取从特定提交及其父级更改的文件列表.我不会试图找出合并与其两个父母之间的变化.我对常规提交更感兴趣.
这些家伙(https://github.com/libgit2/libgit2sharp/issues/89)正在研究类似的东西.我认为他们的程序是一个合理的想法,但我对GIT内部的理解有点弱(最终用户的GIT指南有很多指南,但内部结构却没有那么多)
我很好奇GIT本身如何执行"git diff"命令.据说GIT实际上并不存储增量,而是文件的完整版本(如果它没有改变,它只会指向现有的SHA.这些信息可以从各种来源找到,例如http://xentac.net/2012/01 /19/the-real-difference-between-git-and-mercurial.html).这似乎使得更难以在两次提交之间进行更改(在我的情况下是特定提交及其单个父级),因为数据不是作为提交的一部分存储的(如果您检查libgit2sharp的Commit.cs中的Commit类,这很明显)文件).
我可以通过提交访问的是树.是否有必要执行以下操作以查找此信息:
1)从所需的提交开始,然后沿着树向下走,并将所有SHA值存储在一个集合中.
2)从父级开始进行所需的提交,然后沿着其树向下移动,将其所有blob SHA值存储在另一个集合中.
3)更改文件的SHA将是不在两组交集中的文件.
我用这种方法看到的问题是它看起来没有办法从blob的SHA值中获取文件名(我没有看到任何可以在libgit2sharp的Blob.cs文件中执行此操作).
我知道这个问题有很多方面,但它们是从git获取特定数据的大目标的一部分.
谢谢.
我尝试设置持续集成,以便git push在Team Services中的事件上自动部署我的Azure Service Fabric集群.我遵循了基于本指南的Team Services Build Definition和Team Services Release Definition的默认模板:
使用Visual Studio Team Services为Service Fabric应用程序设置持续集成
在大多数情况下,一切都适用于第一次部署.之后它会抛出以下错误:
An application with name 'fabric:/<APP>' already exists, its type is '<APP>Type' and version is '1.0.0.20160812.7'. You must first remove the existing application before a new application can be deployed or provide a new name for the application.
Run Code Online (Sandbox Code Playgroud)
从那看起来好像它试图完全重新部署服务而不是仅仅升级服务.我搜索了所有设置并尝试创建和重新创建任务但无法解决.
有没有人遇到过这个?
我正在尝试创建一组可重用的小部件,可以在我正在制作的任何网站上使用.似乎AngularJS指令是解决此问题的好方法,但我在使用外部模板文件时遇到问题.
如果我对指令使用内联模板它加载得很好但是如果我使用外部模板它会抛出一个错误:https: //docs.angularjs.org/error/ $ compile/tplrt?p0 = bwInfoCard&p1 =
这是我的测试夹具:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Directive Test Fixture</title>
<link rel="stylesheet" href="./Style.css" type="text/css" />
<script src="../../Libraries/angular.min.js"></script>
<script src="./Widget.js"></script>
<script src="./Fixture.js"></script>
</head>
<body ng-app="BaseWidgetFixtures">
<h1>Base Info Card</h1>
<div ng-controller="InfoCardFixture">
<bw-info-card title="title"></bw-info-card>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的相关控制器:
/// <reference path="..\..\typings\angularjs\angular.d.ts" />
angular.module('BaseWidgetFixtures', ['bwDirectives'])
.controller('InfoCardFixture', function ($scope) {
$scope.title = "TITLE";
});
Run Code Online (Sandbox Code Playgroud)
我的Angular指令:
/// <reference path="..\..\typings\angularjs\angular.d.ts" />
angular.module('bwDirectives', [])
.directive('bwInfoCard', function () {
return {
restrict: 'E',
transclude: false,
replace: true, …Run Code Online (Sandbox Code Playgroud) angularjs ×1
azure ×1
azure-devops ×1
c# ×1
git ×1
javascript ×1
libgit2 ×1
libgit2sharp ×1
templates ×1