小编ang*_*son的帖子

TeamCity和Subversion:Checkout将所有标签复制到buildagent的结帐目录

我们有以下URL:URL:https:// dev-01:8555/svn/Shop

我们在SubVersion中有以下结构

Shop
--trunk
--branches
--tags
Run Code Online (Sandbox Code Playgroud)

问题是,当我进行构建时,在buildagent目录下,我将存储库中的每个标记都复制到buildagent.

有没有办法只检索HEAD修订版以实现构建.

svn version-control teamcity

6
推荐指数
2
解决办法
705
查看次数

使用多个JOINS.SUM()产生错误的值

我在SQL查询中获取一些基本发票信息,并在同一查询中计算订单总额和付款总额.这是我到目前为止:

SELECT
    orders.billerID, 
    orders.invoiceDate, 
    orders.txnID, 
    orders.bName, 
    orders.bStreet1, 
    orders.bStreet2, 
    orders.bCity, 
    orders.bState, 
    orders.bZip, 
    orders.bCountry, 
    orders.sName, 
    orders.sStreet1, 
    orders.sStreet2, 
    orders.sCity, 
    orders.sState, 
    orders.sZip, 
    orders.sCountry, 
    orders.paymentType, 
    orders.invoiceNotes, 
    orders.pFee, 
    orders.shipping, 
    orders.tax, 
    orders.reasonCode, 
    orders.txnType, 
    orders.customerID, 
    customers.firstName AS firstName, 
    customers.lastName AS lastName, 
    customers.businessName AS businessName, 
    orderStatus.statusName AS orderStatus, 
    SUM((orderItems.itemPrice * orderItems.itemQuantity))
      + orders.shipping + orders.tax AS orderTotal, 
    SUM(payments.amount) AS totalPayments                       <-- this sum
FROM
    orders 
    LEFT JOIN customers ON orders.customerID = customers.id 
    LEFT JOIN orderStatus ON orders.orderStatus = orderStatus.id
    LEFT JOIN payments ON payments.orderID = orders.id          <-- this join …
Run Code Online (Sandbox Code Playgroud)

sql join sum

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

XmlIgnoreAttribute,仅在序列化期间使用,而不是在反序列化期间使用?

我是否正确理解.NET XmlIgnoreAttribute,它说:

指示XmlSerializer的Serialize方法不要序列化公共字段或公共读/写属性值.

那:

  • 如果存在于XML文件中,该属性将被反序列化?
  • 该属性不会被序列化为新的XML文件?

我问的原因是我用一个带有更多选项的新属性替换了文件中的属性.旧属性是一个简单的布尔属性,新属性是枚举.我已经更改了旧属性,以便将新属性的值转换为布尔值,根据旧属性在添加新属性之前的含义,get和set都已实现.

这允许我通过读取设置新属性的旧属性来静默升级新文件,并在序列化时添加新属性.

但是,我想从新的xml文件中删除旧属性,所以我想知道如果我用它标记它会发生什么[XmlIgnore],旧的xml文件是否仍然正确地反序列化并从文件中读取该属性,或者它会被完全忽略?

如果没有,以下变化会做我想要的吗?

[XmlAttribute("is-list")]
[DefaultValue(false)]
public bool IsList
{
    get { return false; }
    set {
        if (value)
            ListHandling = ListHandling.All;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于所有新对象,这将返回false,因为我已经指定了默认值,并且如果存在于旧文件中,并且设置为true,则会更改ListHandling属性,这将是重要的新属性.

编辑:经过测试,我已经确认这两种方法似乎都符合我的要求.我会留下这个问题,因为我仍然想知道上面提到的第一个行为是否只是一个实现细节,或者是否可以通过这种方式理解文档.

.net xml-serialization xmlignore

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

Mercurial存储库统计信息,用于查找重构的候选者?

在一个繁忙的存储库中,我可以预见一些文件在一个地方被不断编辑,中心逻辑太多.

有没有办法通过询问Mercurial来找到这样的文件,通过捆绑扩展,第三方扩展或任何外部工具?

基本上我想要一些显示编辑次数最多的文件的统计信息,这样我就可以使用它来查找拆分的候选项,比如将代码重构为多个文件,以避免单个文件经常出现合并问题.

我知道流失扩展,但它似乎只关注每个作者对存储库做了多少,而不是作者做了什么.

mercurial sustainable-pace

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

释放类库源,无需签名密钥文件,但是单元测试需要访问内部类,该怎么办?

情况如下:

  1. 我想将完整的源代码发布到类库中
  2. 我也希望发布二进制文件,由我签名,使用我不想发布的密钥文件
  3. 我将提供批处理文件和预构建步骤,如果不存在则在本地创建新的密钥文件,以便任何人都可以快速开始使用源代码
  4. 测试项目需要引用主项目中的内部类
  5. 要访问内部类,我需要向[assembly: InternalsVisibleTo("...")]主项目AssemblyInfo.cs文件添加一个属性
  6. 由于我正在签署项目输出,因此我需要指定该属性的PublicKey部分
  7. 这将绑定到密钥文件,我不愿意发布

那么,我该如何解决这个问题呢?

如果我签署主项目输出而不是测试库,并且只在InternalsVisibleTo属性中指定程序集名称,则会出现此编译时错误:

错误1朋友程序集引用'Mercurial.Net.Tests'无效.强名称签名程序集必须在其InternalsVisibleTo声明中指定公钥.C:\ Dev\VS.NET\Mercurial.Net\Mercurial.Net\Properties\AssemblyInfo.cs 22 31 Mercurial.Net

所以显然没有签署测试项目输出是不够的.

我唯一的选择是删除签署项目的设置,并修改项目文件作为我的二进制文件构建脚本的一部分?即.<SignAssembly>false</SignAssembly>在构建之前,搜索项目文件的元素并进行修改?

.net code-signing internalsvisibleto assembly-signing

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

Mercurial提交消息和日志,支持什么编码,Hg是否关心?

我尝试通过我的Mercurial包装器库进行简单的提交,使用简单的文本Unicode:æøåÆØÅ作为我的提交消息.这将写入文本文件并使用适当的参数提供给Mercurial:

hg commit --logfile FILE
Run Code Online (Sandbox Code Playgroud)

如果我随后使用TortoiseHg查看存储库,则可以正确再现字符.在控制台上,它们被破坏了:

[C:\Temp] :hg log
changeset:   0:6a0911410128
tag:         tip
user:        Lasse V. Karlsen 
date:        Wed Dec 01 21:48:54 2010 +0100
summary:     Unicode:?ª???Ñ?å?ÿ?à

如果我将输出重定向hg log到文件,并将其打开,æøåÆØÅ则可以正确再现.

所以,我的问题是:

  • 我可以要求hg直接将日志写入文件,还是必须重定向标准输出?
  • 这会导致控制台的python编码问题,即.一些角色会hg崩溃而不是仅仅破坏输出?
  • 是否存在我应该遵守的提交消息的已知支持编码?

或者就是这么简单:

  • Mercurial并不关心,它接受我提供的文件的内容,无论内容如何,​​并将其存储为提交消息.在生成日志时,它会将它转储回控制台,成为Python控制台输出库在这方面的限制的牺牲品吗?

unicode mercurial

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

他们是如何在Massive Micro-ORM,多个args参数中实现这种语法的?

在这个页面上,Scott Hanselman展示了两个来自Micro-ORMs Dapper和Massive的例子,Massive-example引起了我的兴趣,因为我看不出他们如何实现这种语法.

示例如下,我将在几行而不是一行中断它:

var tbl = new Products();
var products = tbl.All(where: "CategoryID = @0 AND UnitPrice > @1",
    orderBy: "ProductName", limit: 20, args: 5,20);
                                       ^----+---^
                                            |
                                            +-- this
Run Code Online (Sandbox Code Playgroud)

他们是如何实现这种语法的,允许args有多个值?我假设params基于参数,因为这是允许的唯一的事情,但我不明白他们是如何构建允许的方法,因为在我看来我尝试的所有内容最终都抱怨命名参数并修复位置参数的顺序错误.

我尝试了这样的测试方法:

public static void Test(string name, int age, params object[] args)
{
}
Run Code Online (Sandbox Code Playgroud)

然后使用命名参数:

Test(age: 40, name: "Lasse", args: 10, 25);
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

在指定了所有固定参数后,必须出现命名参数规范

所以很明显这是错误的.此外,我无法在源头看到任何允许这样做但也许我在错误的地方看.

我在这里错过了什么?

named-parameters c#-4.0 massive

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

带动画的ActivityGroup切换视图

所以我有这个ActivityGroup,其中我展示了2个活动.当我正在切换时我希望有这种过渡效果,当前视图向左滑出屏幕,新视图从右侧进入.这是我的切换代码,假设当前视图是viewA:

Intent i = new Intent(this, ViewA.class);
viewB = getLocalActivityManager().startActivity("viewb", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(viewB);
Run Code Online (Sandbox Code Playgroud)

现在当我执行以下操作时,将显示viewB的背景,并且viewB的内容会滑入,这不是我想要的:

Animation animIn = AnimationUtils.loadAnimation(this, R.anim.righttoleftin);
viewB.startAnimation(animIn);
Animation animOut = AnimationUtils.loadAnimation(this, R.anim.righttoleftout);
viewA.startAnimation(animOut);

setContentView(viewB);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?


实际上,上面的确有效.我有一个问题,我认为viewA被显示,而事实并非如此.

animation android activitygroup

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

UIPickerView,检测"滚轮"启动和停止?

我刚刚发现如果我做以下事情:

  1. 单击将动画显示UIPickerView在我的视图中的按钮
  2. 快速启动车轮朝向最后一个项目滚动,然后经过
  3. 使用按钮关闭视图

然后它还没有选择最后一个项目.

我试图通过在didSelectRow方法被触发时简单地输出到控制台,并且当车轮稳定在最后一个项目时它会触发.

我可以检测到车轮仍然在滚动,这样我可以延迟检查它是否有选定值,直到它稳定下来?

如果重要的是,我正在使用MonoTouch进行编程,但如果您有一个代码示例,我可以很好地阅读Objective-C代码以重新实现它.

uipickerview xamarin.ios ios

6
推荐指数
3
解决办法
7804
查看次数

从字符串中获取数字

我有一个字符串:

"1|2 3 4 oh 5 oh oh|e eewrewr|7|".
Run Code Online (Sandbox Code Playgroud)

我想得到第一个管道(|)之间的数字,返回"2 3 4 5".

任何人都可以帮助我使用正则表达式来做到这一点吗?

ruby regex

5
推荐指数
2
解决办法
7410
查看次数