我正在编写一个工具来将我的所有存储库从Bitbucket(支持Git和Mercurial)备份到我的本地计算机.
它已经适用于Mercurial,我这样做:
bareGit存储库相同)现在我正在尝试用Git做同样的事情.
我已经发现我不能直接pull访问裸存储库,而是应该使用它fetch.
所以我试了一下:
C:\test>git fetch https://github.com/SamSaffron/dapper-dot-net.git
remote: Counting objects: 1255, done.
remote: Compressing objects: 100% (1178/1178), done.
remote: Total 1255 (delta 593), reused 717 (delta 56)
Receiving objects: 100% (1255/1255), 13.66 MiB | 706 KiB/s, done.
Resolving deltas: 100% (593/593), done.
From https://github.com/SamSaffron/dapper-dot-net
* branch HEAD -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
显然Git 确实取了一些东西,但之后本地存储库是空的.
(git log说fatal: bad default revision 'HEAD')
我究竟做错了什么?
免责声明:
我只有非常非常基本的Git知识(我通常使用Mercurial).
我正在使用Windows,如果这很重要的话.
这是我第一次尝试进行单元测试,所以请耐心等待.
我仍在尝试对将POCO列表转换为ADO.Recordsets的库进行单元测试.
现在,我正在尝试编写一个创建a的测试List<Poco>,将其转换为Recordset(使用我想测试的方法),然后检查它们是否包含相同的信息(如,Poco.Foo == RS.Foo等等......) .
这是POCO:
public class TestPoco
{
public string StringValue { get; set; }
public int Int32Value { get; set; }
public bool BoolValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...到目前为止这是测试(我正在使用xUnit.net):
[Fact]
public void TheTest()
{
var input = new List<TestPoco>();
input.Add(new TestPoco { BoolValue = true, Int32Value = 1, StringValue = "foo" });
var actual = input.ToRecordset();
Assert.Equal(actual.BoolValue, true);
Assert.Equal(actual.Int32Value, 1);
Assert.Equal(actual.StringValue, "foo");
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个是最后的三个断言,POCO的每个属性一个.
我已多次读过一次测试中的多个断言是邪恶的(我理解其中的原因,我同意).
问题是,我该怎样摆脱它们?
我有Roy Osherove的优秀着作"单位测试的艺术"就在我的面前,他有一个例子,它涵盖了这一点 …
假设我克隆了一个远程Mercurial存储库(通过本地网络甚至通过Internet)来尝试一些东西.
我在我的克隆中工作,做了一些提交......然后我意识到我的改变没有意义,我必须重新开始.
所以我希望从同一个源库中再次获得一个"新鲜"的克隆.
基本上,我想在我开始试验之前"重置"我的本地回购.
最好/最快的方法是什么?
最简单的方法是创建一个新的克隆,然后HG再次通过网络复制整个repo和整个历史记录.
如果回购非常大,这将花费一些时间和/或阻止网络.
我试图在同一个文件夹中创建一个新的克隆(希望HG能识别这个并只更新已更改的文件和历史记录),但这似乎也复制了整个repo.
我可以"hg rollback",但这只回滚了最后一次提交.如果我做了几次提交,我只能撤消最后一次提交.因此,在开始提交之前,我无法将回购重置为重置点.
有任何想法吗?
除了再次克隆整个事物之外,真的没别的办法吗?
(注意:使用TortoiseHg的解决方案会很好......我更喜欢这个命令行)
我们聘请了一位为我们编写iPhone应用程序的承包商,我开始用ServiceStack为它编写后端服务.
我一般都在努力获得授权:使用何种授权以及如何实施授权.
我对ServiceStack,HTTP和授权(我)了解不多.我读过这篇文章,但我可能还是做错了.
我将使用现有遗留数据库中的用户名和密码进行身份验证(但没有别的 - 没有注册新用户,没有不同的权限.只是进行身份验证).
所以我需要编写自己的提供者.
我已经设法在本教程CredentialsAuthProvider的帮助下实现了一个工作.
它在我在浏览器中测试时有效:
auth/credentials但是,我注意到当我在Fiddler中尝试时,相同的工作流程不起作用.
POST auth/credentials工作.我发布这个:
POST http://localhost:52690/auth/credentials?format=json HTTP/1.1
User-Agent: Fiddler
Host: localhost:52690
Content-Length: 74
Content-Type: application/json; charset=utf-8
{
"UserName": "chspe",
"Password": "xyz",
"RememberMe": true
}
Run Code Online (Sandbox Code Playgroud)
......得到这个:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Fri, 14 Jun 2013 13:07:35 GMT
X-AspNet-Version: 4.0.30319
X-Powered-By: ServiceStack/3,949 Win32NT/.NET
Set-Cookie: ss-id=3YUUgfwIeJd7PedFK5Th; path=/; HttpOnly
Set-Cookie: ss-pid=zQJ5Z4Vq7AY+BpVwbttj; expires=Tue, 14-Jun-2033 13:07:35 GMT; path=/; HttpOnly
Set-Cookie: ss-opt=perm; expires=Tue, 14-Jun-2033 13:07:35 GMT; …Run Code Online (Sandbox Code Playgroud) c# authentication web-services basic-authentication servicestack
自从我使用Access代码以来已经有好几年了,这让我觉得自己很疯狂.
我只是不记得任何事情,我想要做的就是在代码中打开一个记录集,我在网上找不到任何内容,或者我尝试过的任何代码排列.
缺点:
Dim rsSystem As Recordset
Dim sSQL As String
sSQL = "SELECT * FROM Table"
Set rsSystem = CurrentDB.OpenRecordset(sSQL)
Run Code Online (Sandbox Code Playgroud)
我错过了什么神圣的地狱?
提前致谢.
我在sql server数据库中有一个可更新的视图.当我使用ODBC创建链接表时,我被要求选择唯一的记录标识符,以便它可以更新.

我需要在VBA中动态重新链接此表,因此我需要删除并重新创建链接表(我无法更新ODBC表的TableDef.Connect属性).
我找到了几个解决方案,在我的情况下不适用:
这些适用:
临时解决方法:
我的公司聘请了一家承包商为我们做一个小项目,他需要从我们的主数据库(SQL Server 2005)中的一个单一视图中选择数据.
我想SQL Server为他创建一个锁定的登录,只需SELECT从"他的"视图中获得权限......而不是别的.
所以我在服务器上创建了一个新用户,然后我就这一个视图给了他许可:
grant select on SpecialView to SpecialUser;
Run Code Online (Sandbox Code Playgroud)
基本上,这工作 - 他看不到任何我们的表和存储过程,无论任何观点,除了"他"的一个.
但:
显然,他的权限会被自动锁定(sys.objects只显示了他具有权限的对象,sp_who只显示了自己的流程等).
所以,我的问题是:
是否可以创建无法访问系统视图和存储过程的用户?
(如果是的话,我做错了什么?)
或者是否有一些理由为什么即使是锁定的用户也需要访问系统视图和存储过程?
编辑:
kevchadders,用户必须为master,model或msdb中没有访问-只与他应该看到的视图的数据库.
但是,要清楚一点:系统视图/特效,用户可以看到的是在数据库中,其中"他"的观点是 ......不是在master数据库中.所以我无法禁用他的所有访问权限,因为他需要从同一个数据库中的一个视图中进行选择.
问题是,即使我明确地只为单一视图,他应该看到,为什么他还是看到了系统的意见/特效以及设置权限?
我通过将其放入.wxs文件中创建了带有自定义许可证文件的WiX 3.5设置:
<WixVariable Id="WixUILicenseRtf" Value="License.rtf" />
Run Code Online (Sandbox Code Playgroud)
这非常有效,并且在运行创建的.msi文件时会显示链接.
(我正在使用WixUI_InstallDir对话框)
现在我想在许可证文件中添加一个超链接.
我只是通过在写字板中打开并粘贴http://mylink.com(WordPad将其自动转换为超链接)将链接放入文件中.
当我在WiX中编译它时,许可协议对话框显示如下链接:
<http://mylink.com>
Run Code Online (Sandbox Code Playgroud)
我注意到这似乎与自动创建超链接的写字板有关(见上文).
当我删除了http://从许可文件的链接部分,写字板不承认其作为链接了,并在编译的.msi文件中,<并>在许可协议对话框消失.
任何想法我如何能摆脱额外的<和>,除了把该链接进入许可文件而不http://一部分?
编辑:
好吧,也许当我使用"超链接"这个词时,我的想法不够.
我的意思是:它不一定是一个实际的可点击超链接.
我只是希望我的网页的地址显示在许可证文件的顶部.
如果它只是作为文本的URL(不可点击),我会很好,但是我希望它在我输入时显示,而不是显示< >.
问题是写字板一进入就自动将任何URL转换为超链接,所以我不知道如何获得许可协议对话框将其视为普通文本.
我试图弄清楚如何从访问数据库中的月份数字获取月份名称.
我发现了这个:Format(Date, "mmmm")不幸的是我没有日期,我只有月数,所以功能不起作用.
有没有我可以使用的替代方案?
谢谢
鉴于此YAML:
- maincategory:
title: "Projects"
subcategory:
title: "General"
item:
title: "Alpha"
item:
title: "Beta"
- maincategory:
title: "Support"
subcategory:
title: "General"
item:
title: "Something"
item:
title: "Else"
Run Code Online (Sandbox Code Playgroud)
如果Jekyll _data文件称为entrys.yml,如何对这些数据进行迭代?
到目前为止,我已经到了这里,但是我不确定是否应该继续在子循环中引用site.data对象。也不确定这是否可能。
{% for entry in site.data.entries %}
<h2>{{ entry.maincategory.title }}</h3>
{% for subcategory in site.data.entries.maincategories %}
<h3>{{ entry.maincategory.subcategory.title }}</h3>
<ul>
{% for item in site.data.entries.maincategory.subcategories %}
<li><a href="{{ item.href }}">{{ item.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
需要明确的是,这是我要结束的地方(明智的输出):
<!-- Loop over every main category -->
<h2>Main …Run Code Online (Sandbox Code Playgroud) ms-access ×3
c# ×2
sql-server ×2
access-vba ×1
assert ×1
datetime ×1
function ×1
git ×1
git-fetch ×1
git-pull ×1
hyperlink ×1
jekyll ×1
licensing ×1
liquid ×1
mercurial ×1
security ×1
servicestack ×1
tortoisehg ×1
unit-testing ×1
vba ×1
web-services ×1
wix ×1
wix3.5 ×1