我想获取git存储库的所有分支名称.目前,我克隆存储库然后在本地计算机上获取它们.这是低效的,因为我需要的只是名字而不是别的.
我想知道是否可以这样做?如果是这样,我可以使用什么命令.
我即将推出的项目与销售系统有关,因此其中一个主要要求是"用户可以自行修改促销".促销活动各不相同,他们给我一些促销.
我知道一点规则引擎,请给我一本书来学习它.
我已经阅读了一些关于String.Empty vs""的文章,我也做了自己的测试.它们之间有所不同.
的String.Empty
L_0001: ldsfld string [mscorlib]System.String::Empty
Run Code Online (Sandbox Code Playgroud)
""
L_0001: ldstr ""
Run Code Online (Sandbox Code Playgroud)
在我与朋友交谈之后,他们认为String.Empty比""更快,因为在引擎盖下(在汇编级别)ldstr比ldsfld做更多的1圈.(我不记得使它们与众不同的步骤)
我想知道如何检查这方面的性能.
至于我用MVVM开发WPF应用程序,我从不通过viewmodel的公共属性公开模型.无论如何,在我刚刚来到Silverlight和WCF RIA的世界之后,我找到了实现数据验证的新方法,这就是必需属性所说的.(还有其他属性)
这次不是在viewmodel中创建验证逻辑,而是在模型本身内部几乎可以做验证逻辑.
public class TestUserPM {
[Key]
public int ID { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
之后,我在ViewModel中需要的只是公开TestUserPM类型的公共属性,并让View绑定到模型.
我认为这不是优雅的解决方案,但它可以工作,它不需要在viewmodel属性中创建繁琐的验证.
这种方法有任何缺点吗?
更新1
我刚刚找到了1个下方,可能是它有解决方案.我想绑定Button的Command,例如,按钮保存到ViewModel中的Command,但是当且仅当所有信息都有效时,此按钮才能执行.从我与WPF MVVM我已经助手类,我会打电话的经历OnCanExecuteChanged()里面public string this[string columnName]的IDataErrorInfo.
我该如何处理这种要求?
我检查了代码,BlobFixture.cs发现了一些关于读取文件内容的测试,如下所示.
using (var repo = new Repository(BareTestRepoPath))
{
var blob = repo.Lookup<Blob>("a8233120f6ad708f843d861ce2b7228ec4e3dec6");
var contentStream = blob.GetContentStream();
Assert.Equal(blob.Size, contentStream.Length);
using (var tr = new StreamReader(contentStream, Encoding.UTF8))
{
string content = tr.ReadToEnd();
Assert.Equal("hey there\n", content);
}
}
Run Code Online (Sandbox Code Playgroud)
但我找不到根据文件名获取文件内容的测试.是否有可能这样做,如果是这样的话?
单击时如何禁用WPF按钮的边框?
我已经创建了如下所示的按钮,除非我点击按钮,否则一切正常.
<Button Background="Transparent" BorderBrush="Transparent">
<Button.Content>
<StackPanel>
<Image Source="xxx.png" />
<TextBlock Text="Change Password" />
</StackPanel>
</Button.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)
当我点击按钮时,它有如下边框.
alt text http://www.freeimagehosting.net/uploads/8ece306bd4.png
我尝试为FocusVisualStyle按钮创建样式但它不能像我期望的那样工作,当我也设置时也会出现这个问题IsDefault="True".
我想在aspx页面中的服务器控件的代码隐藏中调用MyMethod,如下所示.
MyPage.aspx
<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'>
Run Code Online (Sandbox Code Playgroud)
MyPage.aspx.cs
protected void MyMethod(object obj) { ... }
Run Code Online (Sandbox Code Playgroud)
如果我使用",而不是'在aspx页面,然后它会给我一个编译错误的服务器标记的格式不正确.如下.
<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'> // This line work
<asp:Label ID="MyLabel" runat="server" Text="<%# MyMethod(Eval("MyColumn")) %>"> // This line error
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我需要使用单引号,这是一个规则吗?在我的情况下如何使用双引号?
我正在阅读测试驱动开发:通过示例.所有示例都使用Java和Junit(我在第10章).有一种测试方法可以测试两个对象的相等性.我已经覆盖了类的等于但是在运行我的测试时它失败了.
这是示例代码
public class BaseX
{
public string Test { get; set; }
public override bool Equals(object obj)
{
return this.Test == ((BaseX)obj).Test;
}
public override string ToString()
{
return string.Format("Tyep: {0}, Test: {1}", this.GetType().Name, this.Test);
}
}
public class A : BaseX
{
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码
[Fact]
public void FunTest2()
{
var b1 = new BaseX();
var a1 = new A();
b1.Test = "a";
a1.Test = "a";
Assert.Equal(a1, b1);
}
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,它将失败并显示此消息.
TDD1.UnitTest.UnitTest1.FunTest2 : Assert.Equal() Failure
Expected: Tyep: A, …Run Code Online (Sandbox Code Playgroud) 我想删除数据库,表,视图,存储过程和函数中的所有内容.我找到了一些链接,但它们不适用于复杂的数据库.它没有删除表.这是我在本网站上发现的脚本的自己版本并进行了调整.
/* Drop all non-system stored procs */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
DECLARE @schema VARCHAR(128)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 ORDER BY [name])
SELECT @schema = (SELECT TOP 1 schema_name(schema_id) FROM sys.procedures WHERE [name] = @name)
WHILE @name is not null
BEGIN
SELECT @SQL = 'DROP PROCEDURE [' + @schema + '].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Procedure: ' + @name
SELECT @name = …Run Code Online (Sandbox Code Playgroud) 我在 git 服务器中有 2 个分支,分别是 master 和 develop。我使用下面的代码将存储库克隆到我的机器上。
var options =
new CloneOptions()
{
CredentialsProvider = this.credentialsHandler,
};
return
Repository.Clone(
gitHttpUrl,
localPath,
options);
Run Code Online (Sandbox Code Playgroud)
默认分支是 master。我想使用以下代码切换到开发分支。
using (var repo = new Repository(localPath))
{
var branch = repo.Branches[branchName];
repo.Checkout(branch);
}
Run Code Online (Sandbox Code Playgroud)
但分支为空。
如何使用 LibGit2Sharp 切换分支?
更新
默认分支是master,下面是重现问题的步骤。
develop分行这是代码:
private void Checkout(string localPath, string branchName)
{
using (var repo = new Repository(localPath))
{
var branch = repo.Branches[branchName];
if (branch == null)
{
branch = repo.CreateBranch(branchName, "origin/" + …Run Code Online (Sandbox Code Playgroud) .net ×3
git ×3
c# ×2
libgit2sharp ×2
asp.net ×1
cil ×1
git-branch ×1
mvvm ×1
rule-engine ×1
silverlight ×1
sql ×1
sql-server ×1
styles ×1
unit-testing ×1
wpf ×1
xunit.net ×1