小编pep*_*epr的帖子

如何立即从作者的所有分支git日志?

我需要获得作者所做的所有提交的报告.到目前为止,我有包含以下命令的脚本:

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在将它用于克隆的存储库时不起作用.

git

196
推荐指数
2
解决办法
7万
查看次数

最先进的C++单元测试?

用于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++的单元测试框架列表.然而,人们无法看出它们在原理上有何不同.我目前有三个候选人(保守选择):

  • 提升 - 可能的候选人; 测试用于C++标准; 因此它很可能被广泛接受; 可能是最大的用户群.它似乎比...更先进CppUnit.
  • CppUnit - 我知道,但是编写所有代码并不是一种乐趣.
  • Visual Studio 2013内置 - 对我来说很新,可能会以某种方式生成骷髅.

无论如何,似乎三者都使用类似的方法.可能VS2013支持生成代码,但这并不意味着它会导致更简单的任何问题.

有没有全新的方法?

c++ unit-testing cross-platform visual-studio

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

SQL Server 2008 Service Broker教程 - 无法接收消息(transmission_status中的异常)

我正在学习如何使用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) .

  1. 按照教程建议,我下载了AdventureWorks2008R2_Data.mdf示例数据库,并将其复制到C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL\DATA\AdventureWorks2008R2_Data.mdf

  2. 必须以"管理员"身份启动SQL Server Management Studio才能以后附加数据.然后我连接了SQL Server.

  3. 右键单击Databases,上下文菜单Attach ...,按钮Add ...,指向AdventureWorks2008R2_Data.mdf + OK.然后从下面的网格中选择AdventureWorks2008R2_Log.ldf(报告为未找到)并按下删除...按钮.按OK后,附加了数据库并自动创建了AdventureWorks2008R2_log.LDF.

  4. 以下查询用于查看"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)

service-broker sql-server-2008-r2

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

WinMerge:如何比较具有相同内容但编码不同的文件?

动机: 我正在重写一个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非常适合我.请参阅下面的答案.

winmerge

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

git reset问题 - 添加.gitattribute后的硬盘 - 不应该存在的本地更改

在合并我的同事的捆绑后,我发现了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 安装当前版本安装.

我还应该尝试什么?

谢谢,彼得

windows git gitattributes

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

ProfileCommon - 在运行时转换失败

摘要:将基类转换为派生类后返回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)

所不同的也就是我已删除了virtualGetProfile()方法,并使其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)

c# asp.net casting visual-studio-2013

12
推荐指数
2
解决办法
713
查看次数

无法在Python 3.4(路径?)的Ubuntu 14.04上安装uWSGI

总体而言,我希望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)

ubuntu install uwsgi python-3.x

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

VC++ 2012:如何将版本信息从version.inc(单独维护)包含到.rc文件中

简介: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)

visual-c++-2012

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

如何从我的DatePickerFragment传输格式化的日期字符串?

遵循官方文档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)

android android-datepicker

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

为什么bad_alloc(const char*)在Visual C++ 2012中变为私有?

我只是尝试使用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标准是否建议不要将该构造函数与参数一起使用?

(我可以想象,如果分配失败,可能会导致更多问题,试图构建任何新的东西.但是,这只是我的猜测.)

谢谢,彼得

compatibility visual-c++ visual-studio-2012

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