我需要获得作者所做的所有提交的报告.到目前为止,我有包含以下命令的脚本:
git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,它仅报告当前分支的操作.是否有任何选项可以从所有分支记录作者的提交消息,而不仅仅是形成当前的分支?
换句话说,git可以对存储库中的所有提交进行反向排序(按日期时间),并从该序列中提取日志信息吗?
解决:(从下面的评论复制,否则隐藏)
问题是我有一个存储库和两个克隆在两个分支上可靠地工作.我确实将更改推送到源存储库,但是我忘记了对克隆存储库的更改.这种方式似乎--all在将它用于克隆的存储库时不起作用.
用于C++语言的单元测试最现代的方法是什么?具有更大内省能力的语言类(如Python)具有单元测试框架,这些框架在某种程度上更自然地使用.可以更容易地定义单元测试.相比之下,经典CppUnit(基于 JUnit)似乎采取非常保守的方法.是否有更新更好的东西使用C++(甚至C++ 11)的特定功能来让生活更轻松?
CppUnit对于Windows原生C++(Visual Studio 2005和2010)上的项目部分,我一直以相当简单的方式使用框架.我们之前没有选择测试驱动开发方法,因为已经有很多遗留代码,我们发现很难为它添加测试.我们不得不重构应用程序,但即使在这种情况下,添加所有不错的测试也会非常耗时.
最近,我们已经切换到Visual Studio 2013(因为C++ 11标准实现),我们将开始新的,而不是长期的项目.
拥有以前在单元测试方面的良好(小)经验,我想尝试测试驱动开发方法.由于项目不是很小(预期大小与旧版本大致相同,即大约200 k行代码),我更喜欢更容易(但能力不强)的框架.
新项目有可能导致跨平台实施(Windows和Linux).Visual Studio 2013中有一个单元测试支持,但我没有它的经验,它如何适应跨平台.
到目前为止,我已经找到了C++的单元测试框架列表.然而,人们无法看出它们在原理上有何不同.我目前有三个候选人(保守选择):
CppUnit.无论如何,似乎三者都使用类似的方法.可能VS2013支持生成代码,但这并不意味着它会导致更简单的任何问题.
有没有全新的方法?
我正在学习如何使用SQL Server 2008 R2的Service Broker.在完成单个数据库中的完成对话教程时.在第1课之后,我成功创建了消息类型,合同,队列和服务.在第2课之后,我可能已经发送了这条消息.但是,在尝试接收消息时,我获取的是NULL ReceivedRequestMsg而不是发送的内容.
在查看时sys.transmission_queue,transmission_status消息说:
在目标队列中排队消息时发生异常.错误:15517,状态:1.无法作为数据库主体执行,因为主体"dbo"不存在,此类主体不能被模拟,或者您没有权限.
我已经使用Windows登录安装了SQL Server Mycomp\Petr.我也在使用该登录课程.
你能猜出是什么问题吗?我应该检查和设置什么才能使其正常工作?
编辑2012/07/16:为了帮助重现问题,这就是我所做的.如果您按照下一步操作,是否可以重现错误?
首先,我使用的是Windows 7 Enterprise SP1和Microsoft SQL Server 2008 R2,开发人员版,64位(版本10.50.2500.0,根目录位于C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL) .
按照教程建议,我下载了AdventureWorks2008R2_Data.mdf示例数据库,并将其复制到C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL\DATA\AdventureWorks2008R2_Data.mdf
必须以"管理员"身份启动SQL Server Management Studio才能以后附加数据.然后我连接了SQL Server.
右键单击Databases,上下文菜单Attach ...,按钮Add ...,指向AdventureWorks2008R2_Data.mdf + OK.然后从下面的网格中选择AdventureWorks2008R2_Log.ldf(报告为未找到)并按下删除...按钮.按OK后,附加了数据库并自动创建了AdventureWorks2008R2_log.LDF.
以下查询用于查看"Service Broker enabled/disabled",以及启用(Service Broker已成功启用数据库):
USE master;
GO
SELECT name, is_broker_enabled FROM sys.databases;
GO
ALTER DATABASE AdventureWorks2008R2
SET ENABLE_BROKER
WITH ROLLBACK IMMEDIATE;
GO
SELECT name, is_broker_enabled FROM …Run Code Online (Sandbox Code Playgroud) 动机: 我正在重写一个doc文本文件,以便稍后处理.新的来源现在使用UTF-8.大部分来源是相同的.我需要找到差异.
详细信息:旧的doc源使用cp1250编码,新的源使用UTF-8.新旧源都使用相同的行结尾(CR + LF).我正在使用Unicode版本的WinMerge应用程序(WinMergeU.exe),版本2.12.4.0.
它几乎可以工作,但......当线条不同时,它们最初被暗黄色标记为块,并且使用较浅的颜色标记不同的部分.在那里移动红色块光标时,下面的窗格显示不同的部分.
但是,在文本的(Unicode表示)相同的情况下,文本块也用深黄色标记.红色块也移动到文件的那些部分.在这种情况下,下面的两个窗格(显示差异)包含相同的文本,没有任何标记为不同.见下图:

第一行不同 - 这没关系.但第二行在视觉上具有相同的内容.ASCII范围之外的唯一字符就在Ú那里.它在编码源中具有不同的表示.这会导致标记为不同的行,但下面的窗格不会将该行标记为不同.
另请参阅以下完全相同的段落(仅源中的编码不同,使用相同的行结尾).
看起来好像初始比较是基于线的二进制表示.是否有任何设置告诉WinMerge比较(我的意思是块标记)应该基于Unicode内容?
我努力了,但没有运气.
更新:以上问题是针对最新稳定的2.12.4.测试版2.13.22非常适合我.请参阅下面的答案.
在合并我的同事的捆绑后,我发现了CRLF问题.有时将带有LF的行混合到源中,可能是合并到的源.因此,我们决定添加.gitattributes包含以下内容的文件(删除注释):
*.cpp text
*.h text
*.inc text
*.cfg text
*.dic text
*.sln text eol=crlf
*.vcxproj text eol=crlf
*.filters text eol=crlf
*.user text eol=crlf
*.rc text eol=crlf
*.rc2 text eol=crlf
Run Code Online (Sandbox Code Playgroud)
现在我观察到奇怪的行为.我可以看到很多modified: ...不应该存在的文件(即未分级的).我试过git reset --hard,但文件仍然具有相同的状态.我试图再次克隆存储库 - 结果相同.
我git version 1.7.11.msysgit.0已从Git-1.7.11-preview20120620.exe下载的Windows 安装当前版本安装.
我还应该尝试什么?
谢谢,彼得
摘要:将基类转换为派生类后返回Null.但是,在转换之前,基类对象似乎没问题.
详细信息:我正在重写旧的asp.net WebForms应用程序,以便能够使用MVC方法扩展它.作为过程的一部分,我将Web站点项目转换为Web应用程序项目.在这种情况下,ProfileCommon不会自动生成类.所以,我从旧项目中复制了自动生成的类定义并将其放置为utils\ProfileCommon.cs.该文件的内容是(简化为一个也从捷克语等效名称重命名的属性):
using System;
using System.Web;
using System.Web.Profile;
namespace proj_app.utils
{
public class ProfileCommon : System.Web.Profile.ProfileBase
{
public virtual string Name {
get { return ((string)(this.GetPropertyValue("Name"))); }
set { this.SetPropertyValue("Name", value); }
}
public static ProfileCommon GetProfile(string username)
{
return ((ProfileCommon)(ProfileBase.Create(username)));
}
}
}
Run Code Online (Sandbox Code Playgroud)
所不同的也就是我已删除了virtual从GetProfile()方法,并使其static.(ProfileBase没有GetProfile()方法;所以,应该没问题吧?)
代码编译得很好.但是,我可以在浏览器中观察到以下内容(松散翻译,行号与示例不匹配):
The object of the ProfileCommon type cannot be casted to proj_app.utils.ProfileCommon.
Description: ... unhandled exception during the …Run Code Online (Sandbox Code Playgroud) 总体而言,我希望Ubuntu服务器使用nginx,uWGI和Python 3(virtualenv)来启动一些项目.
我确实遵循了可以在各个地方找到的建议.尝试使用时安装uWSGI sudo pip install uwsgi,我确实观察到以下错误:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我确实从2012年9月找到了[JFSebastian的评论] [1]关于它的必要性$ sudo apt-get install python2.7-dev- 它适用于Python 2.7.所以,我做了类似的Python 3.4(似乎成功).但是,我仍然观察到错误.
在尝试搜索时Python.h,我可以找到:
$ locate Python.h
/usr/include/python3.4m/Python.h
Run Code Online (Sandbox Code Playgroud)
我还应该设置什么才能安装uWSGI?(我对Ubuntu Linux很陌生,尽管我在中年时期确实使用过Unix;)
更新:
根据jwalker对下面评论的建议,我pip install uwsgi在激活的virtualenv内做了没有sudo.但是安装程序无法build在venv目录中创建子目录(如).我试图chmod go+w为venv,但它没有帮助.我承认我对virtualenv和pip一无所知,而且我的Unix知识也有点生疏:
...
File "/var/www/hec_project/hec_venv/lib/python3.4/site-packages/pip/req.py", line 218, in build_location
_make_build_dir(build_dir)
File "/var/www/hec_project/hec_venv/lib/python3.4/site-packages/pip/req.py", line 1527, in _make_build_dir
os.makedirs(build_dir)
File "/var/www/hec_project/hec_venv/lib/python3.4/os.py", line 237, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/www/hec_project/hec_venv/build'
Storing …Run Code Online (Sandbox Code Playgroud) 简介:在version.inc通过预处理器宏单独维护中定义版本详细信息...如何将宏值包含到资源版本定义块中?
我的version.inc文件以UTF-8存储(例如纯ASCII).其完整内容如下(APS_此处的前缀与应用程序的真实名称相关,而不是.aps与资源编译器生成的文件相关):
#define APS_MAJORNUMBER 4
#define APS_MINORNUMBER 5
#define APS_BUILDNUMBER 0
#define APS_MODIFICATIONNUMBER 0
#define APS_BUILDEXT "wx"
#define APS_DATEYEAR 2012
#define APS_DATEMONTH 10
#define APS_DATEDAY 4
Run Code Online (Sandbox Code Playgroud)
app.rc与Visual Studio 2010相比,Visual Studio 2012 C++似乎对资源脚本文件()更加挑剔.我注意到的第一件事是,当手动编辑时,我必须保持UTF-16编码.你能证实吗?那有什么文件吗?
说app.rc看起来像这样的版本块:
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040504b0"
BEGIN
VALUE …Run Code Online (Sandbox Code Playgroud) 遵循官方文档http://developer.android.com/guide/topics/ui/controls/pickers.html#DatePicker.
我使用了相同的代码,并在onDateSet方法中只添加了结果格式:
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar …Run Code Online (Sandbox Code Playgroud) 我只是尝试使用Visual Studio 2012 Release Candidate,C++编译更大的项目.该项目现在使用VS2010进行编译.(我只是贪婪得到C++ 11的东西,所以我试过.:)
除了我自己可以解释的事情之外,该项目使用如下代码:
ostringstream ostr;
ostr << "The " __FUNCTION__ "() failed to malloc(" << i << ").";
throw bad_alloc(ostr.str().c_str());
Run Code Online (Sandbox Code Playgroud)
编译器现在抱怨
error C2248: 'std::bad_alloc::bad_alloc' : cannot access private member declared
in class 'std::bad_alloc'
Run Code Online (Sandbox Code Playgroud)
......这是真的.那个版本的构造函数现在是私有的.
将该版本的构造函数设为私有的原因是什么?C++ 11标准是否建议不要将该构造函数与参数一起使用?
(我可以想象,如果分配失败,可能会导致更多问题,试图构建任何新的东西.但是,这只是我的猜测.)
谢谢,彼得
git ×2
android ×1
asp.net ×1
c# ×1
c++ ×1
casting ×1
install ×1
python-3.x ×1
ubuntu ×1
unit-testing ×1
uwsgi ×1
visual-c++ ×1
windows ×1
winmerge ×1