小编Bas*_*ink的帖子

跨平台git配置的最佳实践?

上下文

我的许多应用程序用户配置文件都保存在git存储库中,以便在多台计算机和多个平台之间轻松共享.这些配置文件.gitconfig中包含以下用于处理回车换行符的设置

[core]
    autocrlf = true
    safecrlf = false
Run Code Online (Sandbox Code Playgroud)

问题

这些设置也应用于GNU/Linux平台,这会导致模糊的错误.

在配置文件中处理这些特定于平台的差异有哪些最佳实践?

提出的解决方案

我意识到这个问题可以通过为每个平台建立一个分支并将主要内容保持在主服务器并在主服务器向前移动时与平台分支合并来解决.我想知道这个问题是否有更简单的解决方案?

git git-config

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

如何将git桥接到ClearCase?

我最近git svn很习惯和喜欢它.现在我正在另一个客户开始一个新项目.在该站点,选择的SCM是ClearCase.我没有找到git svnClearCase 的烘焙等效物.是否有人尝试使用git本地作为ClearCase的前端使用一些技巧,配置或脚本以及任何成功的衡量标准?如果是这样,请解释一下使用的方法?

git clearcase git-svn

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

为emacs组织模式设置时钟表持续时间格式

我最近升级到org-mode 8.2.5h,现在当我更新我的时钟表时,大于24h的值会显示为:1d 9:16.是否有任何偏好我可以设置将其切换回小时:分钟格式.我搜索了文档,但找不到有关此主题的任何信息.

emacs org-mode

31
推荐指数
3
解决办法
2807
查看次数

版本控制友好,可扩展的二进制文件格式

在我正在进行的项目中,需要将大量的数据结构保存到磁盘(编辑:想想几十MB).作为一个乐观主义者,我认为必须有一个标准的解决方案来解决这个问题; 但是,到目前为止,我还没有找到满足以下要求的解决方案:

  1. .NET 2.0支持,最好是FOSS实现
  2. 版本友好(这应该解释为:如果底层数据结构中的更改很简单,例如添加/删除字段,则读取旧版本的格式应该相对简单)
  3. 能够进行某种形式的随机访问,其中部分数据可以在初始创建后进行扩展,而无需反序列化到目前为止创建的集合(将其视为扩展中间结果)
  4. 节省空间和时间(根据此要求,XML已被排除在选项之外)

目前考虑的选项:

非常感谢任何建议或指示.此外,如果您认为上述任何信息都不正确,请提供指示/示例以证明我的错误.

.net binary file-format

12
推荐指数
1
解决办法
1073
查看次数

如何运行Couchdb测试套件,如导览的"入门"部分所述?

这可能是一个非常奇怪和/或愚蠢的问题,但我正在尝试按照Couchd文档入门部分1.4.2 描述运行测试套件:

单击Futon侧边栏上的"Test Suite"导航到测试套件,然后单击顶部的"全部运行"以启动测试.

在屏幕截图和我在本地运行的实例上,我似乎无法在Futon侧边栏中找到提到的"测试套件".

如何通过其他方式运行测试套件?

couchdb

11
推荐指数
1
解决办法
1572
查看次数

按值将C#对象传递给COM

我正在尝试使用来自C#的COM接口,它暴露了由tlbimp生成的以下接口:

[Guid("7DDCEDF4-3B78-460E-BB34-C7496FD3CD56")]
[TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FNonExtensible | TypeLibTypeFlags.FDispatchable)]
public interface IFred 
{
    [DispId(1)]
    IBarney Pall { get; set; }
}

[Guid("E390230E-EE9C-4819-BC19-08DAB808AEA9")]
[TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FNonExtensible | TypeLibTypeFlags.FDispatchable)]
public interface IBarney
{
    [DispId(1)]
    double Wilma { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

生成的包装程序集不包含IBarney接口的实现.我已经创建了一个C#结构来实现这样的IBarney接口:

[Guid("2C61BA37-7047-43DB-84B1-83B4268CF77B")]
[ComVisible(true)]
public struct Barney : IBarney
{
    public double Wilma { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

哪个"有效",现在的问题是,一个Barney实例是通过价值还是通过参考进行整理?由于涉及网络开销,这很重要.理想情况下执行以下操作:

fredInstance.Pall = new Barney { Wilma = 0.37 };
Run Code Online (Sandbox Code Playgroud)

将导致单个网络往返.我如何验证这一点,或者如何告诉COM互操作我的Barney结构应该始终按值进行编组?

更新:

鉴于Hans Passant的评论.设计这个的"正确"方法是什么?允许简单结构作为COM接口的"属性"值使用的IDL是什么?查看从中生成接口的IDL,我正在使用添加coclass带默认IBarney接口的声明就足够了,对吧?

c# com com-interop marshalling

7
推荐指数
1
解决办法
265
查看次数

如何使用带参数化类型的assertEqual

我正在尝试使用HUnit以TDD方式在Real World Haskell中进行练习.你可能已经猜到我还没有走得太远,所以当谈到Haskell时,我是一个绝对的初学者.鉴于以下代码,我如何解决ghci产生的以下错误:

不明确的类型变量在List_Test.hs中显示由于使用"assertEqual"而产生的" a' in the constraints: 使用assertEqual' at List_Test.hs:6:27-58 Eq a":6:27-58可能的修复:添加修复这些类型变量的类型签名

List_Test.hs:

module List_Test
where
import List
import Test.HUnit

fromEmptyList = TestCase $ assertEqual "" [] (toList (Nil))

main = runTestTT fromEmptyList
Run Code Online (Sandbox Code Playgroud)

List.hs:

module List
where
data List a = Cons a (List a)
            | Nil
              deriving (Show)

toList Nil = []
toList (Cons a b) = (:) a (toList b) 
Run Code Online (Sandbox Code Playgroud)

我已经尝试将类型约束添加到List声明和toList定义,但没有成功.互联网搜索也没有提供任何信息.

testing haskell hunit

3
推荐指数
1
解决办法
264
查看次数

在Golang应用程序中,如何将版本嵌入除main之外的其他软件包中?

这个SO问题的启发,我想使用相同的机制在我的golang应用程序中嵌入版本号。但是我正在使用Cobra命令行解析器,并希望有一个version子命令。这将导致以下目录和包结构:

.
|-- cmd                                                                   
`-- version.go                                                    
|-- main.go                                                           
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了以下方法:

go run -ldflags "-X cmd/version.versionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

--

go run -ldflags "-X version.versionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

--

go run -ldflags "-X version.VersionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

随着version.go包含像这样的变量声明:

var versionString string
Run Code Online (Sandbox Code Playgroud)

var VersionString string
Run Code Online (Sandbox Code Playgroud)

分别。

我也尝试过将变量声明放进去,main.go但是我不清楚如何为version.go我尝试过的这个选项引用变量:

import "github.com/basbossink/psiw"
....
fmt.Println(psiw.VersionString)
Run Code Online (Sandbox Code Playgroud)

--

import "github.com/basbossink/psiw/main"
...
fmt.Println(main.VersionString)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,编译器都会抱怨psiwmain分别未知。请注意,使用VersionStringin main将提供预期的结果。

我更喜欢一种解决方案,其中链接标志指向version程序包中的变量,因为它们不需要反向指针。但是任何建议都欢迎。

version auto-versioning go

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

如何在Chicken Scheme中使用中止程序

我正在尝试使用Chicken Scheme的 中止程序,如下面的代码所示:

(module change-calculator (export calculate-change)
  (import scheme)

  (define (calculate-change coin-values amount)
    (cond ((null? coin-values) (abort '"coin-values should contain at least one value."))
          ((= 0 amount) '() )))
)
Run Code Online (Sandbox Code Playgroud)

但得到以下警告:

Warning: reference to possibly unbound identifier `abort' in:
Warning:    calculate-change
Run Code Online (Sandbox Code Playgroud)

该文档未提及任何需要导入的附加模块.我尝试导入extras,utils,srfi-12没有任何成功.谁能告诉我使用中止程序的正确方法?还是我错过了别的什么?

scheme abort chicken-scheme

0
推荐指数
1
解决办法
192
查看次数