当"dcommitting"到svn时,我该如何将作者(或提交者)名称/日期添加到日志消息中?
例如,如果Git中的日志消息是:
This is a nice modif
我希望svn中的消息是这样的:
This is a nice modif ----- Author: John Doo <John.Doo@company.com> 2010-06-10 12:38:22 Committer: Nice Guy <nguy@acme.org> 2010-06-10 14:05:42
(请注意,我主要对日期感兴趣,因为我已经在.svn-authors中映射了svn用户)
任何简单的方法?胡克需要吗?其他建议?
(另见:http://article.gmane.org/gmane.comp.version-control.git/148861)
作为简化示例,我正在执行以下操作
IEnumerable<string> files = Directory.EnumerateFiles(path, @"2010*.xml",
SearchOption.TopDirectoryOnly).ToList();
Run Code Online (Sandbox Code Playgroud)
在我的结果集中,我得到一些与文件模式不匹配的文件.根据msdn searchPattern通配符是"零个或多个字符"而不是reg ex.一个例子是我得到的文件名为"2004_someothername.xml".
有关信息,文件夹中有超过25,000个文件.
有谁知道发生了什么事?
我将开发移植到另一台计算机,如果我运行项目,我有这个例外:
无法获取StrongNameKeyPair的公钥.
HibernateException:创建代理实例失败
在原始计算机上它可以正常工作没有问题
我在google上发现它有一些加密的问题,我应该尝试"sn -m n",我不知道如何.sn.exe在更多的文件夹中,我尝试从命令行运行一些但它写道:
无法打开注册表项 - 无法格式化错误消息00000005
我不知道问题是因为NHibernate与否,还有更多类似的whitch对话框,它只在一种情况下抛出此异常.
有部分代码whitch抛出异常:
public IList<DTO> GetAll(GridSortOptions sortOptions, DTOListModel<DTO> listModel)
{
return GetAllCriteria(sortOptions, CreateCriteria(), listModel).List<DTO>();
}
Run Code Online (Sandbox Code Playgroud)
解决方案中没有一个项目使用签名.我不明白这些错误究竟意味着什么以及我应该寻找什么.
这可能是一个常见的问题,我在没有找到有效的解决方案的情况下搜索了其他问题(注意,我在C#和linq方面的技能是有限的 - 所以一个简单的解决方案将不胜感激!).
这是问题:
我有两个对象列表.我想比较它们并返回list2中的所有NEW对象.
例:
ObjectList List1; //包含存储在数据库中的3个对象
ObjectList List2; //包含与List1中相同的3个对象和从网页添加的新对象(父对象已在网页上更新)
ObjectList List3; //应该对List1和List2进行比较,并返回List2中的NEW对象(因此结果应该只是对象编号4)
注意:
感谢您在我的搜索中遗漏的任何建议或链接
编辑
这是一个使用Except进行首次尝试的小例子(返回错误)
我把它缩短了一点.该方法来自我们的软件,因此很可能不为您所知.对于那个很抱歉.
// caDialogObjects = List1 (caDialogQLMLinks is the link to the objects)
RepositoryObjectList caDialogObjects = args.Object.GetConfiguration().GetObjectSet(caDialogQLMLinks);
// caObjectObjects = List2 (caObjectQLMLinks is the link to the objects)
RepositoryObjectList caObjectObjects = args.Object.GetConfiguration().GetObjectSet(caObjectQLMLinks);
// List 3
RepositoryObjectList caTotal;
caTotal = caObjectObjects.Except(caDialogObjects);
Run Code Online (Sandbox Code Playgroud)
有效的解决方案 由于列表只是一个引用(不是值),因此Exception不起作用.可以使用第二个参数,但我得到了一个有效的linq代码:
RepositoryObjectList caNewCA =
new RepositoryObjectList(caDialogObjects.Where(item1 =>
!caObjectObjects.Any(item2 => item1.Id == item2.Id)));
Run Code Online (Sandbox Code Playgroud) 我有几个我想解决的高级场景,但我不知道如何.我希望你能提供帮助:
A - B - C - D - E.我想将提交中的更改添加D到提交B和删除提交D.怎么样?A - B - C.Commit B包含一个不应该提交的文件.如何从提交中删除它?A - B - C - D.Commit C包含一个应该通过commit 提交的文件B.如何从提交中删除它C并将其添加到提交B?请注意:所有提交仅在我的工作副本中,尚未推送.
LINQ to NHibernate删除where子句中的括号:
session.Query<MyEntity>().Where(x => (x.MyProp1 < end && x.MyProp1 > start) ||
(x.MyProp2 < end && x.MyProp2 > start));
Run Code Online (Sandbox Code Playgroud)
这导致以下查询(请注意缺少的括号):
select <columns> from MY_ENTITY where MY_PROP1 < :p0 and MY_PROP1 > :p1 or
MY_PROP2 < :p2 and MY_PROP2 > :p3;
Run Code Online (Sandbox Code Playgroud)
这是一个很大的问题,因为它会显着改变查询条件.
这是一个已知问题还是我做错了什么?

在上图中,您可以看到代码合同中的警告.我不认为这是合法的,this永远不会null.
这是一个错误还是我错过了什么?
此属性是以下类的成员:
public class NHibernateIQueryableQueryBase<TEntity, TQuery, TQueryInterface>
: IQuery<TEntity>, IFluentQueryInterface<TEntity, TQueryInterface>
where TQuery : NHibernateIQueryableQueryBase<TEntity, TQuery,
TQueryInterface>,
TQueryInterface
where TQueryInterface : IQuery<TEntity>
Run Code Online (Sandbox Code Playgroud)
更新:
将属性更改为以下内容仍显示警告 - 在线return result;:
public TQueryInterface And
{
get
{
var result = this as TQuery;
return result;
}
}
Run Code Online (Sandbox Code Playgroud) 在.NET 4.0 - > .NET 4.5应用程序迁移过程中,我发现了一种非常奇怪的行为.我已经能够将这个问题跟踪到这个简短的代码片段:
class Program
{
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
static void Main(string[] args)
{
const int CXFRAME = 0x20;
const int CYFRAME = 0x21;
var dx = GetSystemMetrics(CXFRAME);
var dy = GetSystemMetrics(CYFRAME);
Console.WriteLine("{0}x{1}", dx, dy);
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
当使用Target Framework = 4.0(以及2.0,3.0,3.5)编译时,它输出8x8
编译时Target Framework = 4.5,输出4x4
使用MSVS2012调试器运行此示例也始终输出4x4(使用任何目标框架).
其他选项(目标框架配置文件,目标平台,启用/禁用Aero)不会影响结果,唯一改变输出的是目标框架和运行调试器.我已经能够在3台计算机上重现这个问题,不幸的是它们在安装的软件方面几乎完全相同:
目前我正在考虑修补一些使用反射SystemParameters调用的.NET类(例如)GetSystemMetrics(),但我不确定如何获得正确的度量值.
问题:
GetSystemMetrics() …将我的机器从.NET 4.0升级到4.5后,我发现我的VS2010项目现在显示了对.NET框架的依赖.如果我继续构建部署项目,则安装需要.NET; 我找不到任何方法来覆盖.NET的自动依赖,因此安装将在没有它的情况下工作.
我的两个项目都没有实际使用.NET.项目设置是"无公共语言运行时支持",项目都是用本机C++编写的,一个是控制台应用程序,另一个是MFC.
如果我回滚到.NET 4.0,问题就会消失,我可以部署到没有.NET的XP环境中.升级到4.5并返回问题.
排除依赖项的选项不适用于.NET框架.Ahhhhhhh.
我即将放弃并安装盾牌,但在安装.NET 4.5(我需要另一个应用程序)之前,这一切都很不情愿.
有没有人见过这个?
我有一个.NET 4.0 Web项目,并使用Microsoft.Bcl.Async来支持异步/等待功能.我注意到在生产环境中,IIS工作进程由于引发了NullReferenceException而不断崩溃System.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1().似乎异常在我的代码中的某个地方被抛出并且在AsyncServices.ThrowAsync()方法中被重新抛出.不幸的是,任何异常细节(包括原始堆栈跟踪)都会丢失,因此我不知道最初抛出异常的位置.此外,我试图使用AppDomain.CurrentDomain.UnhandledException和TaskScheduler.UnobservedTaskException事件捕获此异常,但这些事件永远不会被触发.
我有所有错误详细信息(来自EventLog):
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace: at System.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
Run Code Online (Sandbox Code Playgroud)
我的代码中没有明显的位置可能会抛出此异常并在没有任何输出的情况下处理崩溃.
我该如何调试?有没有办法找到这个例外的来源?