小编Man*_*nha的帖子

适用于Linux的漂亮且功能丰富的git GUI

我被检查出了rich GUIGitLinux.最近我开始大量使用它并发现即使命令行非常有用,我仍然需要一个GUI供我使用,因为我还不太了解高级功能.

以前在SO上遇到过这个问题,但我还是要再问这个问题,因为那个问题没有我的答案

  • 我已经使用git-colagitk,但他们看上去半生不熟和gitk看起来像我的一些其他工作DE.我在gitGUI中需要的所有功能都不在其中.

  • 我试过giggle,但它对于观看差异更有用

  • 我试过了QGit,但还没有完全完成.

现在让我告诉我如何想要一个foo-Git-GUI看起来像:

  • 你可以看一下Bzr Explorer,它是高度可用的,并且具有许多功能,而不是上面提到的许多GUI

任何人都知道任何Git GUI,看起来像我上面发布的上面的例子?

git user-interface dvcs gitk

67
推荐指数
6
解决办法
6万
查看次数

.NET将简单数组转换为List Generics

这个问题看起来似乎微不足道,乍一看也很愚蠢,但它远不止于此.

我有一个任何类型的数组T(T[]),我想将其转换为List generic(List<T>).除了创建一个通用列表,遍历整个数组并在List中添加元素之外还有其他方法吗?

现状:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>();
foreach(string s in strList)
{
    listOfStr.Add(s);
}
Run Code Online (Sandbox Code Playgroud)

我理想的情况:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = strList.ToList<string>();
Run Code Online (Sandbox Code Playgroud)

要么:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>(strList);
Run Code Online (Sandbox Code Playgroud)

我建议最后两个方法名称,因为我认为编译器或CLR如果它想要内置,可以对整个操作执行一些优化.

PS:我不是在谈论Array或者ArrayList类型

.net c# arrays generics clr

12
推荐指数
2
解决办法
3万
查看次数

使用.NET的CodeDom创建枚举

我想使用创建枚举CodeDom API.我在互联网上搜索得足够多,而且我得到的结果几乎没用.

我想要产生的是

public enum bug_tracker_type
{
    [Description("Bugzilla")]
    Bugzilla,
    [Description("Debbugs")]
    Debbugs,
    [Description("PHP Project Bugtracker")]
    PHP_Project_Bugtracker,
    [Description("Google Code")]
    Google_Code
}
Run Code Online (Sandbox Code Playgroud)

我使用CodeTypeDeclaration并将其IsEnum属性设置为true,创建了一个名称,并设置了它的属性.

现在最大的问题是如何填充身体?

我试过了

CodeTypeMember mem = new CodeTypeMember();
mem.Name = WadlSharpUtils.CreateIdentifier(discreteValue.value);
mem.CustomAttributes.Add(new CodeAttributeDeclaration(discreteValue.value));
// enumCandidate is an instance of CodeTypeDeclaration
enumCandidate.Members.Add(mem);
Run Code Online (Sandbox Code Playgroud)

虽然使用这个解决方案我可以生成描述属性,但行结束;与否,

.net c# codedom

10
推荐指数
1
解决办法
4352
查看次数

Git全局钩子定制

我打算写一些git钩子作为一个项目,将用户的操作记录在数据库中.然后可以使用该数据库查询其所有活动.我想要记录的操作是

  • 承诺
  • 合并

我希望将这个包装在可以通过包管理器安装的发行版中.Git允许通过放置任何这样的全局钩子$PREFIX/share/templates/hooks

它目前有一些禁用的钩子(.sample附加到它们的名称).创建新存储库时,会将这些挂钩复制.git到存储库的文件夹中

现在,如果用户安装了这些钩子和钩子的包,post-commit并且post-update已经启用了.在这种情况下,脚本文件将被覆盖!这听起来很糟糕

这意味着git每个操作只有一个钩子文件.如果我需要为一个动作保留三个钩子,这意味着它是不可能的.这意味着从包管理器自动安装可能会引入冲突.

现在认为我们打包了钩子来覆盖默认的启用文件.如果用户想要为这些文件添加更多操作然后决定卸载我的包,那么他的自定义命令也会消失?

我认为git在这方面非常聪明,我错了:(

需要有一个名为的文件夹post-commit和/ post-update或任何操作,git应该运行该文件夹中的所有脚本.我仍然在寻找一种方法来处理当前的情况.

git scripting githooks

6
推荐指数
1
解决办法
1229
查看次数

NewtonSoft.Json自定义JsonConverter反序列化为DateTime不起作用

我试图将a反序列化为Unix timestampa DateTime.在我的情况下,我需要做更多的检查才能从时间戳设置属性到DateTime.如果我使用DateTimeNewtonsoft.Json是它反序列化到UTC时间,我需要将其反序列化到一个特定的时区

问题是我无法得到正确的时间.好像我的字符串long解析失败了.如果我可以得到longunix时间戳,我可以让其余的逻辑工作

我有一个名为的班级 Alert

class Alert
{
    // Some properties

    [JsonConverter(typeof(UnixTimestampJsonConverter))]
    public DateTime Created { get; set; }

    // Some more properties
}
Run Code Online (Sandbox Code Playgroud)

这个班UnixTimestampJsonConverter

class UnixTimestampJsonConverter : JsonConverter
{
    // Other override methods

    public override object ReadJson (JsonReader reader, Type objectType, 
        object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType == JsonToken.EndObject)
            return null;

        if (reader.TokenType == JsonToken.StartObject) {
            long instance = serializer.Deserialize<long> (reader);
            return …
Run Code Online (Sandbox Code Playgroud)

c# timezone datetime json json.net

4
推荐指数
1
解决办法
4746
查看次数

优雅的方式将纪元时间戳转换为东部时间并使用Nodatime进行反向

我正在编写围绕马萨诸塞州海湾运输管理局(MBTA)实时API的托管包装器.它们有一个API,它返回服务器时间,即unix时间戳(epoch).我正在实现它的库是PCL Profile 78,这意味着我对BCL TimeZone的支持有限,所以我求助于使用Nodatime

我试图将从服务器返回的时间转换为东部时间,这是America/New_York一个DateTime对象和反向方式.我目前的代码很脏

public static class TimeUtils
{
    static readonly DateTimeZone mbtaTimeZone = DateTimeZoneProviders.Tzdb["America/New_York"];
    static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

    public static DateTime GetMbtaDateTime (long unixTimestamp)
    {
        var mbtaEpochTime = epoch.AddSeconds (unixTimestamp);
        var instant = Instant.FromUtc (mbtaEpochTime.Year, mbtaEpochTime.Month,
            mbtaEpochTime.Day, mbtaEpochTime.Hour, mbtaEpochTime.Minute, mbtaEpochTime.Second);
        var nodaTime = instant.InZone (mbtaTimeZone);
        return nodaTime.ToDateTimeUnspecified ();
    }

    public static long MbtaDateTimeToUnixTimestamp (DateTime time)
    {
        TimeSpan secondsSinceEpochMbtaTz = time …
Run Code Online (Sandbox Code Playgroud)

c# timezone datetime portable-class-library nodatime

2
推荐指数
1
解决办法
1220
查看次数