我有两个共享一个公共_id的MongoDB集合.使用mongo shell,我想在一个集合中找到其他集合中没有匹配的_id的所有文档.
例:
> db.Test.insert({ "_id" : ObjectId("4f08a75f306b428fb9d8bb2e"), "foo" : 1 })
> db.Test.insert({ "_id" : ObjectId("4f08a766306b428fb9d8bb2f"), "foo" : 2 })
> db.Test.insert({ "_id" : ObjectId("4f08a767306b428fb9d8bb30"), "foo" : 3 })
> db.Test.insert({ "_id" : ObjectId("4f08a769306b428fb9d8bb31"), "foo" : 4 })
> db.Test.find()
{ "_id" : ObjectId("4f08a75f306b428fb9d8bb2e"), "foo" : 1 }
{ "_id" : ObjectId("4f08a766306b428fb9d8bb2f"), "foo" : 2 }
{ "_id" : ObjectId("4f08a767306b428fb9d8bb30"), "foo" : 3 }
{ "_id" : ObjectId("4f08a769306b428fb9d8bb31"), "foo" : 4 }
> db.Test2.insert({ "_id" : ObjectId("4f08a75f306b428fb9d8bb2e"), "bar" : …Run Code Online (Sandbox Code Playgroud) 我想重命名某个目录中的所有文件.将它们重命名为创建日期.
因此,如果我的文件是Image1.jpg,它应该重命名为"Jan 16 12:09:42 2011.jpg"
我想通过命令行执行此操作.我一直在努力:
stat -f %SB Image0100.jpg
Run Code Online (Sandbox Code Playgroud)
但是我如何将它与mv命令结合起来呢?我将如何迭代stat并遍历mv整个文件?
或者是否有简单的方法来重命名所有文件的日期创建?
我有一个单页的AngularJS应用程序,有四个区域,每个区域都有自己的内容:

我需要每个区域通过服务进行通信,但是否则他们需要有自己的独立路由以用于查看目的,即它们应该各自具有自己的视图状态.
我试图用angular-ui-router做这个(plunkr),但我无法弄清楚如何创建仅影响特定模块或区域的angular-ui状态,而不修改页面上其余区域.
该页面包含以下区域:
<body>
<a ui-sref="initial1">Initial Region 1</a><br/>
<a ui-sref="initial2">Initial Region 2</a>
<div ui-view="region1" class="region1"></div>
<div ui-view="region2" class="region2"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
应用程序尝试在独立模块中定义每个区域:
var app = angular.module('Main', ['ui.router', 'Region1', 'Region2']);
var region1App = angular.module('Region1', []);
region1App.config(function($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('initial1', {
url: '/',
views: {
'region1@': {
template: 'Initial Region 1 State, go to <a ui-sref="second1">Second State</a>'
}
}
})
.state('second1', {
url: '/',
views: {
'region1@': {
template: 'Second Region 1 State, go to <a ui-sref="initial1">Initial …Run Code Online (Sandbox Code Playgroud) 我正在使用Scala模板引擎(Scalate)在OSGi环境中运行时编译模板(Scala 2.9.1).模板无法预编译,因为它们是动态构建的.
为了使其工作,Scala编译器需要在OSGi环境中运行.但是,由于Scala编译器无法将类加载器作为输入,因此这不是开箱即用的.
根据我的研究,似乎有两种通用的解决方案:
1)一个scala编译器插件(有一个从这里开始,但自2009年以来没有被触及,2009年scala列表上的消息表明它还没有准备好用于生产.
2)在bundle上下文之上创建一个虚拟文件系统,然后由Scala编译器使用.显然,Apache sling家伙已经在旧版本的Scala上成功使用了这种方法.
有没有人让Scalate,Scala 2.9.1和OSGi一起动态编译模板?
我们的git开发工作流程是主题分支在最新的master上不断重新定义,直到它们被合并为止.
但是,一个新的开发人员已经创建了主题分支,在这些主题分支中,他已经将master与主题分支进行了多次合并,以使其保持最新状态.
A---B---C---D---E topic
/ / /
F---G---H---I master
Run Code Online (Sandbox Code Playgroud)
虽然将这个主题分支合并到master将是完全正确的,但它会导致非常混乱的历史.我想将这些主题分支转换为干净的线性重定历史,可以通过单个--no-ff合并提交将其干净地合并到master中,即:
A'---B'---E' topic
/
F---G---H---I master
Run Code Online (Sandbox Code Playgroud)
理想情况下,会有一些git-fu允许我执行rebase,按原样对主题分支进行提交,同时自动应用主题合并提交(例如C和D)中已有的合并冲突解决信息.
我知道我可以简单地应用"git diff master..topic"的补丁,然后使用rebase向后工作并手动将单个补丁拆分为单独的提交,但是有更简单,更优雅的方法吗?
我已经尝试过直git rebase并git rebase -p没有运气命令.
我有一个多级 Maven 项目,其结构如下:
+ project
+ subproject1
+ 1_module1
+ 1_module2
+ 1_module3
+ 1_module3
+ subproject2
+ 2_module1
+ 2_module2
+ 2_module3
+ ...
+ subproject3
+ 3_module1
+ 3_module2
+ 3_module3
+ ...
+ packaging-project
Run Code Online (Sandbox Code Playgroud)
打包packaging-project子项目的构建工件,并声明、和pom的类型依赖关系。这(正确地)将其放在反应器构建顺序的最后,因此这对于单线程构建来说非常完美。subproject1subproject2subproject3
然而,对于多线程构建(例如mvn -T4),构建是在所有子项目模块构建之前packaging-project由 maven 执行的。
我发现的一个解决方案是明确列出每个子项目的每个模块作为packaging-project. 然而,这很烦人和脆弱——每次创建新模块时,都必须将其显式列出,packaging-project否则可能会破坏构建。
另一种解决方案是通过配置文件运行packaging-project,然后mvn在主构建之后的单独调用中显式执行它。这是一个很好的解决方案,但需要在构建时执行额外的步骤。
是否有另一种方法可以声明列出的子项目的每个模块之间的构建顺序依赖关系packaging-project,而无需显式地将每个子项目的每个子模块声明为依赖关系?
说我有以下git repo:

我想指定所有branches(--all)的git rev-list 但是不包括给定的分支(比方说feature-D),但是我想显示共同的祖先feature-D和其他分支,即commit Initial和1.
如果我尝试git rev-list --all ^feature-D提交Initial并被1排除在外:

当然我可以列出除feature-Dexplicit(git rev-list feature-A feature-B feature-C)之外的所有分支以获得我想要的东西:

但有没有办法指定一个获取先前结果的转录列表,只能参考feature-D?
(请注意,这个问题的灵感来自于这个答案:https://stackoverflow.com/a/20978568/430128)
有多种方法可以使用 git log 来“选择”提交。例如:
和许多其他人。
但是,所有这些仅显示在命令行上选择的提交。我想要的是查看我范围内的所有提交,但突出显示(使用颜色、标记或其他任何内容)这些提交的特定子集,例如更改特定文件或其他内容的提交。所以在做的时候:
git log --oneline master..@ -- path/to/frobnitz
Run Code Online (Sandbox Code Playgroud)
而不是看到:
12ca6d863 foo
6166da1fd bar
894567343 baz
Run Code Online (Sandbox Code Playgroud)
我会看到类似的东西:
46984ad11 (HEAD -> master) git is fun!
2e11a5382 cool beans
>> 12ca6d863 foo
60069036d whatever
d698663d0 something
>> 6166da1fd bar
3d2c811e3 more cool stuff
>> 894567343 baz
3d2c811e3 cool stuff
Run Code Online (Sandbox Code Playgroud)
此外,理想的解决方案将使用--graphmode,因为我还想查看所选提交的合并和分支上下文。
我还注意到它git log支持各种历史简化场景,这在某些情况下几乎可以满足我的需求,但要弄清楚如何实现并不容易,也不是我想要的。我已经有了想要查看的历史记录,并且已经有了想要突出显示的提交。
我有一些想法,但我不喜欢其中任何一个:
编写脚本——运行两个 git 日志,然后使用其中一个的输出来装饰/操作另一个。这样做的缺点是它很脆弱,对于我可能提供给目标日志的不同选项集,它不能很好地工作,例如--graph
对于“选定的”提交,selectedcommits为它们分配临时引用,然后用于--decorate-refs=selectedcommits显示相关提交。这看起来很乱。
我有两个未知类型的变量.我想对变量类型的组合进行模式匹配,然后根据它进行操作 - 具体来说,我想Comparator[Any]根据它们的类型实现和比较这两个变量.此代码生成所需的结果:
class SomethingComparator extends util.Comparator[Any] {
override def compare(o1: Any, o2: Any) = List(o1, o2).map(_.isInstanceOf[Something]) match {
case List(true, true) => o1.asInstanceOf[Something].someInt.compareTo(o2.asInstanceOf[Something].someInt)
case List(true, false) => -1
case List(false, true) => 1
case _ => 0
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法直接避免map类型上的调用和模式匹配,因此避免asInstanceOf第一次匹配中的两个调用?
我正在尝试获取在 Apollo Server 2 中工作的订阅的解析器。订阅在顶级字段(即直接在Subscription根目录下schema)时有效。
但是,如果订阅包含在另一个中type,我总是会在客户端的 websocket 连接上收到错误Subscription field must return Async Iterable. Received: undefined- 服务器的解析器永远不会执行。
即这个模式有效:
type Subscription {
postAdded: Post
}
Run Code Online (Sandbox Code Playgroud)
但这一个没有:
type Subscription {
post: PostSubscription
}
type PostSubscription {
postAdded: Post
}
Run Code Online (Sandbox Code Playgroud)
我的第二种情况的解析器看起来像这样,但我尝试了很多不同的变体,但没有成功:
Subscription: {
post: () => ({
PostSubscription: {}
})
},
PostSubscription: {
postAdded: {
subscribe: () => pubSub.asyncIterator(['postAdded'])
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个模式 A 的 GenericRecord 对象,它也是生成的 Avro Java 类。我是否可以以某种方式将该对象转换为实际的 A 类型?
我知道如何使用git rebase --onto移植历史.但是,我经常发现自己想要将历史从不同的分支移植到我当前的分支上,而没有中间分离的HEAD状态.
换一种说法:
git checkout foo
git rebase --onto foo A^ B
# results in a detached HEAD
# how to avoid this last step?
git checkout -B foo
Run Code Online (Sandbox Code Playgroud)