在Linux中,我最喜欢的合并工具是Meld,我使用或配置它与Git一起工作时没有任何问题.然而,在Windows中它是一个不同的故事.
首先,我从我在这里找到的软件包中安装了Meld:https://code.google.com/p/meld-installer/
然后,我配置了我的.gitconfig,以支持Meld作为默认的mergetool
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
所以,当我遇到冲突时,我会做git difftool而Meld确实打开了.但是,Git写入传递给diff工具的文件的路径不正确.例如,即使Git在存储库目录(我称之为git mergetool的位置)中生成BASE,LOCAL和REMOTE文件,Meld也会尝试打开可执行文件目录中的每个文件.
Meld尝试打开C:\ Program Files(x86)\ Meld\meld\roses.txt.LOCAL.2760.txt,而不是打开C:\ repo\roses.txt.LOCAL.2760.txt.
有没有人遇到过这个或知道如何配置Git/Meld在Windows中正常工作?
我正在尝试使用EF代码首次迁移来构建数据库(如果它不存在).到目前为止,我已经Enabled-Migrations成功了.我还习惯于Add-Migrations进行构建数据库的初始迁移.该脚本处于迁移方向,看起来正确.
这是我的Main方法的主体
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
Run Code Online (Sandbox Code Playgroud)
我读过的所有内容都说这就是我所需要的.MyDbContext在app.config,看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=DbConfig;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
此外,如果我使用EF提供的DbMigrator类,则数据库正确构建(可能使用初始数据库迁移脚本).
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
Run Code Online (Sandbox Code Playgroud)
根据我的理解,设置初始化程序MyDbContext,然后实例化,DbContext应该创建数据库到最新的迁移...我错过了什么?
我正在尝试为Andoid应用程序开发设置Cordova.我正在关注本指南:http://cordova.apache.org/docs/en/2.7.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android.我正在运行最新的Linux Mint 15.
到目前为止,我已经安装了Android Developer Tools软件包,运行Java版本1.7.0的OpenJDK和安装了Ant 1.8.2.我已经将/ tools和/ platform-tools添加到我的$ PATH环境变量中.当然,我也将Cordova Android SDK解压缩并准备好了.随包管理器安装了Ant和Java; ADT捆绑包/ Android SDK和Cordova解压缩到我的主目录中.
我尝试按照入门指南运行以下命令,但脚本在Ant构建操作上失败.我对Java和Android堆栈的经验很少,我很难搞清楚如何继续.
./create ../../workspace/project com.nelson.wells myfirstapp
BUILD FAILED
/home/nelson/Development/adt-bundle-linux/sdk/tools/ant/build.xml:650: The following error occurred while executing this line:
/home/nelson/Development/adt-bundle-linux/sdk/tools/ant/build.xml:691: Execute failed: java.io.IOException: Cannot run program "/home/nelson/Development/adt-bundle-linux/sdk/build-tools/android-4.2.2/aapt": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
at java.lang.Runtime.exec(Runtime.java:615)
at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:862)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:481)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:495)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:631)
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:672)
at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:498)
at com.android.ant.AaptExecTask.execute(AaptExecTask.java:699)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348) …Run Code Online (Sandbox Code Playgroud) 我试图指定一个目录,并递归地查找子目录中的每个文件。之后findCHDIR的到一个目录,我希望做一些处理之前find读取文件。这是一个演示问题的简化片段。它不会递归到子目录中,但看起来应该如此。我可以验证子目录和文件是否存在,因为如果我在find没有预处理键的情况下调用,那么我会得到列表。我很久没有使用 Perl 了,所以我有点难住了。
find({
wanted => \&wanted,
preprocess => \&preprocess
}, "/home/nelson/invoices/");
# function definitions
sub wanted {
print "Calling wanted...\n";
print "\t" . $File::Find::name . "\n";
}
sub preprocess{
print "Calling preprocess...\n";
print "\t" . $File::Find::dir . "\n";
}
Run Code Online (Sandbox Code Playgroud)
这是输出。
Calling wanted...
/home/nelson/invoices
Calling preprocess...
/home/nelson/invoices
Calling wanted...
/home/nelson/invoices/1
Run Code Online (Sandbox Code Playgroud) 我正在尝试将十六进制字符发送到套接字以指示新消息.此代码有效:
$socket->send("\x{0B}");
$socket->send($contents);
$socket->send("\x{1C}");
$socket->send("\x{0D}");
Run Code Online (Sandbox Code Playgroud)
但是,由于这发生在一个循环中,我需要变量十六进制字符,我还没弄清楚如何让它工作.这就是我尝试过的.
my $start_char = get(); # returns, for example 0B
my $end_char = get(); # 1C
my $end_seg = get(); #0D
$socket->send("\x{$start_char}");
$socket->send($contents);
$socket->send("\x{$end_char}");
$socket->send("\x{$end_seg}");
Run Code Online (Sandbox Code Playgroud)
我可以验证函数返回的变量在perl端是否正确,但服务器不接受它们作为有效字符.有关如何执行此操作的任何输入?