小编Ric*_*ter的帖子

在Mercurial中,有没有办法(除了"Cherry pick"之外)推动变更集而不推动与不同头部相关的变更集?

这个问题的答案中,Ry4an声称"你不能在不推动Changeset1的情况下推动Changeset2".

如果存储库看起来像这样,这当然有意义:

+ Changeset2
|
+ Changeset1
|
+ Original
Run Code Online (Sandbox Code Playgroud)

然而,在以下场景中似乎没有那么多意义,这是我目前所拥有的:

+ Changeset2
|
|   + Changeset1
|  /
| /
+ Original
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望能够将Changeset2推送回我最初克隆的存储库.Mercurial似乎不愿意让我这样做.它坚持我也推动Changeset 1 ......这是不允许的,因为它会在原始存储库中创建一个新头.显然我可以"Cherry pick",或者创建一个补丁来应用于原始存储库,但这看起来很笨拙.我错过了什么吗?

更新:我可能在我最初的问题中提到我试图从TortoiseHg GUI 执行操作.正如尼尔·Ç.在他的回答中正确地指出,Mercurial命令行允许我完成我所需要的,但是我仍然有兴趣学习是否有任何方法可以从GUI完成相同的操作.

version-control mercurial dvcs

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

为什么log4net条目在某些侦听器中会"丢失"

这个真的让我摸不着头脑......

我一直在应用程序中使用log4net(目前版本1.2.10).在向应用程序添加新选项时,我注意到即使log4net调试,错误等方法从控制台appender没有看到来自该日志源的被调用项.

检查了明显的(如确保没有涉及过滤),我注意到其他一些奇怪的东西.如果我有多个appender(例如日志文件appender和UDP appender),那么appender有时会看到日志消息的不同子集.他们看到哪个子集似乎是随机的,但通常在问题发生时,他们将无法看到来自给定日志源的所有消息.

为什么会发生这种情况,我该怎么办呢,因为丢失的消息意味着无法信任日志文件以显示远程故障的准确图像?

[下面的附加信息添加于2010年1月19日]

我终于好好看了一下ILog对象在响应调用时被传回来了

LogManager.GetLogger(typeof (MyTypeHere));
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我得到一个ILog对象,其中Debug,Info,Warning,Error等设置为false.在其他情况下,ILog对象将它们正确设置为true.由于我的代码没有操作那些标志,在我的代码被传递的情况下,来自我的代码的"禁用的"ILog对象消息(可以理解)根本不会传播.

我仍然无法解释两个appender之间明显的差异.

c# log4net

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

使用String.Format时,有一种简单的方法可以在字符串值周围添加括号(如果它不为null或为空)

我试图隔离(出于本地化目的)某些消息的格式.在其中一种情况下,我有几个参数,其中一些可能是一个空字符串.这里可能需要一个例子....

如果参数是参数1参数2,那么我希望结果是某些消息参数1(参数2).

如果参数是参数1string.Empty,那么我希望结果是某些消息参数1

如果参数2是一个数值,那么我可以使用类似的东西:

String.Format("Test {0}{1:' ('#')'}", "Parameter one", 12);

这正如我所期望的那样运行 - 特别是如果第二个参数为null,则输出只是测试参数1.

不幸的是,我还没有找到一个类似于字符串参数的选项.有吗?

澄清:我完全了解在代码中获得所需结果的多种方法.我特别想知道是否有一个类似于上面显示的数字字符串的内置机制.

c# string formatting

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

我在哪里可以找到Ken Auer推广的启动器模式的更多细节?

在他的" 极限编程应用"一书中,肯·奥尔随便提到了一种启动器模式.肯特贝克也提到它(至少在2004年11月8日的电子邮件中),但我没能在通常的地方找到任何细节(谷歌,在c2.com的维基等)

哪里可以找到更多?

design-patterns extreme-programming

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

我可以告诉XmlTextWriter写<element />而不是<element />吗?

我有一种情况,XML数据由两种不同的机制处理.在一个地方,它使用Python的xml.dom.minidom库进行处理.另一方面,通过XmlTextWriter在.NET中执行类似的处理.

在Python代码生成的输出中,空元素写为<ElementName />(在元素关闭之前没有空格).在.NET代码中,正在插入一个空格(导致<ElementName />).这与XML的有效性或含义没有任何区别,但是当比较两个输出时,它确实导致输出被检测为不同.

有没有办法告诉XmlTextWriter不要包含额外的空间?如果失败了,有没有办法在Python生成的输出中包含额外的空间(没有搞乱库源,哪些可能是我认为不可取的东西;-))?

更新:也许我应该解释我正在尝试做什么,而不是仅仅描述问题.我可能会比我应该做的更复杂/痛苦.

我真正需要的是一些机制来确定XML所代表的结构尚未被修改.我最初是扁平化XML(当在.NET世界中完成所有事情时消除了空白问题),然后计算数据的适当盐渍哈希值.有没有更好的机制我可以/应该使用?

.net python xml

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

如何从其他线程更新命令的“ CanExecute”值?

在我的应用程序中,我有一个命令,我只希望用户能够在尚未运行时进行触发。有问题的命令绑定到WPF按钮,这意味着如果CanExecute为false,它将自动禁用该按钮。到目前为止,一切都很好。

不幸的是,该命令执行的操作是长期运行的操作,因此它需要在其他线程上进行。我不认为这会是一个问题...但是似乎是。

我提取了一个最小的样本来显示问题。如果绑定到按钮(通过LocalCommands.Problem静态引用),则将根据需要禁用该按钮。当辅助线程尝试更新CanExecute时,将从System.Windows.Controls.Primitives.ButtonBase内部引发InvalidOperationException。

解决此问题的最合适方法是什么?

下面的示例命令代码:

using System;
using System.Threading;
using System.Windows.Input;

namespace InvalidOperationDemo
{
    static class LocalCommands
    {
        public static ProblemCommand Problem = new ProblemCommand();
    }

    class ProblemCommand : ICommand
    {
        private bool currentlyRunning = false;
        private AutoResetEvent synchronize = new AutoResetEvent(false);

        public bool CanExecute(object parameter)
        {
            return !CurrentlyRunning;
        }

        public void Execute(object parameter)
        {
            CurrentlyRunning = true;

            ThreadPool.QueueUserWorkItem(ShowProblem);
        }

        private void ShowProblem(object state)
        {
            // Do some work here. When we're done, set CurrentlyRunning back to false.
            // To …
Run Code Online (Sandbox Code Playgroud)

c# wpf threadpool

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