小编Awe*_*nym的帖子

Gitosis错误:在先前可访问的存储库上接收"读取访问被拒绝"

玩家们

我已经使用git和gitosis几个月了,我真的很喜欢这两个.不幸的是,我在使用gitosis访问我的一个项目时遇到了问题.

设置

我在运行Debian的托管服务器帐户上设置了我的git和gitosis安装.我还设置了四台带有单独rsa密钥的计算机(两台Ubuntu,两台Windows),并成功设置每台计算机以访问gitosis安装.一切都顺利进行了一段时间.但是,最近,我无法以任何方式访问我的"DesktopConfiguration"项目(推,拉,克隆).我最初在我的一台Linux机器上创建了DesktopConfiguration项目,将其推送到gitosis服务器,并将其克隆到我的一台Windows机器上.直到最近(过去两周左右)我才能访问它.以下是我的gitosis.conf文件和我收到的错误消息(无论我尝试使用Windows或Linux框推送,拉取还是克隆,错误消息都是相同的):

胡克

gitosis.conf的

[gitosis]  
loglevel = DEBUG  

[group gitosis-admin]  
writable = gitosis-admin  
members = windows-desktop linux-desktop linux-laptop work-laptop  

[group main-projects]  
writable = WallpaperChanger  
writable = RegexTester  
writable = MovieAggregator  
writable = FileRenamer  
writable = GlutenFreeShoppingAssistant  
writable = Libraries  
writable = DesktopConfiguration  
writable = RssFeedReader  
members = windows-desktop linux-desktop linux-laptop work-laptop  
Run Code Online (Sandbox Code Playgroud)

错误信息

C:\Documents and Settings\myname\Desktop\Desktop Config Test>git clone git@myserver:DesktopConfiguration.git  
Initialized empty Git repository in C:/Documents and Settings/myname/Desktop/Desktop Config Test/DesktopConfiguration/.git/  
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'DesktopConfiguration.git'"  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as …
Run Code Online (Sandbox Code Playgroud)

git access-denied gitosis

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

Moq的意外验证行为

在我的最新项目中,Moq让我有点疯狂.我最近升级到版本4.0.10827,我注意到在我看来是一个新的行为.

基本上,当我MakeCall在我正在测试的代码中调用我的模拟函数(在本例中)时,我传入一个object(TestClass).我正在测试的代码TestClass在调用之前和之后对对象进行了更改MakeCall.一旦代码完成,我就调用Moq的Verify功能.我的期望是,Moq将记录我传入的完整对象MakeCall,可能通过深度克隆等机制.通过这种方式,我将能够验证是否MakeCall使用我希望调用它的确切对象进行调用.不幸的是,这不是我所看到的.

我试图在下面的代码中说明这一点(希望在此过程中澄清一点).

  1. 我首先创建一个新TestClass对象.它的Var财产设置为"one".
  2. 然后我创建了模拟对象mockedObject,这是我的测试主题.
  3. 然后我调用MakeCall方法mockedObject(顺便说一下,示例中使用的Machine.Specifications框架允许When_Testing从上到下读取类中的代码).
  4. 然后我测试模拟对象,以确保它的确TestClass使用Var值为"one".正如我所预料的那样,这成功了.
  5. 然后我TestClass通过重新分配Var属性来更改原始对象"two".
  6. 然后我继续尝试验证Moq是否仍然认为使用值为的MakeCall调用.这失败了,虽然我期待它是真的. TestClass"one"
  7. 最后,我测试看看Moq是否认为MakeCall实际上是由TestClass具有值的对象调用的"two".这成功了,虽然我最初预计它会失败.

对我来说,似乎很清楚Moq只保留对原始TestClass对象的引用,允许我改变其值而不受惩罚,对我的测试结果产生不利影响.

关于测试代码的一些注意事项. IMyMockedInterface是我嘲笑的界面. TestClass是我传递给该MakeCall方法的类,因此用于演示我遇到的问题.最后,When_Testing是包含测试代码的实际测试类.它正在使用Machine.Specifications框架,这就是为什么有一些奇怪的项目('因为','它应该...').这些只是框架调用以执行测试的委托.如果需要,应该很容易删除它们并将包含的代码放入标准函数中.我把它留在这种格式中,因为它允许所有Validate调用完成(与'Arrange,Act Assert'范例相比).只是为了澄清,下面的代码不是我遇到问题的实际代码.它只是为了说明问题,因为我在多个地方看到了同样的行为.

using Machine.Specifications;
// …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc moq mspec

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

标签 统计

access-denied ×1

asp.net-mvc ×1

git ×1

gitosis ×1

moq ×1

mspec ×1