我们有两层设置.
我们有一个主存储库(下面称为"主要").
还有一个二级存储库(下面称为"二级"),它是这样创建的:
$ git clone --bare --shared $REPO_A/primary secondary.git
Run Code Online (Sandbox Code Playgroud)
在辅助存储库上工作的人将来自主存储库的分支视为只读,但是将这些分支基于这些分支.
我们希望每天一次将辅助存储库与主存储库同步.
也就是说,我们希望提交到主服务器的提交和新分支对于在辅助存储库中工作的人员是可见的(下次他们执行拉动).
我们不希望这是对称的,即对于在主存储库之外工作的人来说,对辅助存储库的活动不会变得可见.
理想情况下,我想运行一台运行在机器上的cron作业,该辅助存储库以某种方式从主服务器获取新数据并自动将其包含到辅助服务器中.
我希望有一个简单的方法可以做到这一点(我希望有人在这里告诉我有).
如果我要写一个脚本来做它,它会做:
创建辅助的新克隆.
$ git clone $REPO_B/secondary
$ cd secondary
Run Code Online (Sandbox Code Playgroud)获得所有分支机构.
$ git branch -r | sed 's?.*origin/??'
Run Code Online (Sandbox Code Playgroud)获取主要仓库中的所有分支.
$ git ls-remote --heads $REPO_A/primary | sed 's?.*refs/heads/??'
Run Code Online (Sandbox Code Playgroud)对于我尚未拥有相应辅助分支的每个主分支:
$ git fetch $REPO_A/primary $BRANCHNAME:$BRANCHNAME
$ git push origin $BRANCHNAME:refs/heads/$BRANCHNAME
Run Code Online (Sandbox Code Playgroud)对于我已经拥有相应二级分支的每个主分支:
$ git checkout -b $BRANCHNAME --track origin/$BRANCHNAME
$ git pull $REPO_A/primary $BRANCHNAME
$ git push
Run Code Online (Sandbox Code Playgroud)由于我是git的新手,如果我没有考虑某些基本问题,我不会感到惊讶吗?
就像我说的那样,我希望有一种更简单的方法可以做到这一点,即有人说"哦,不要那么做,只做......".
http://maven.apache.org/pom.html#Properties表示属性"值可在POM内的任何位置访问".
这应该是" 在POM内的大多数地方都可以访问"吗?
我可以指定依赖的版本没有问题,如下所示:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是项目本身的版本如何:
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>${myversion}</version>
<properties>
<myversion>8</myversion>
</properties>
<modules>
<module>alpha</module>
<module>beta</module>
</modules>
...
Run Code Online (Sandbox Code Playgroud)
如果我尝试这个<version>将不会取值8.这里我在pom中定义了$ {myversion}但是如果我在命令行中指定-Dmyversion = 8,情况似乎也是如此.
如果其中一个模块使用硬编码版本号指定其父级,如下所示:
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>8</version>
</parent>
Run Code Online (Sandbox Code Playgroud)
当我尝试构建然后当maven来看模块的pom时,它会说它无法找到版本8的给定父pom.
但是,如果我将父版本中的版本硬编码为8,而不是使用$ {myversion},那么一切正常.
所以在我看来,父pom的/ project/version标签不会发生属性替换.
是这种情况还是对我似乎看到的内容有其他解释?
问候,
/乔治
我正在使用Chrome 40(这样的东西很漂亮和现代).
Cache-Control: max-age=0, no-cache在所有页面上设置 - 所以我希望浏览器只在其首先检查服务器并获得304 Not Modified响应时才使用其缓存中的内容.
然而,在按下后退按钮时,浏览器会快速点击其自己的缓存,而无需检查服务器.
如果我打开同一页面,就像我使用后退按钮一样,在新选项卡中,它会检查服务器(并在303 See Other事情发生变化时获得响应).
请参阅下面的屏幕截图,其中显示了Chrome开发者工具的"网络"标签中两种不同情况的输出.
我认为我可以使用max-age=0, no-cache更轻量级的替代品no-store,我不希望用户通过后退按钮看到陈旧数据(但数据是无价值的,因此可以缓存).
我的理解no-cache(参见此处和此处的SO)是浏览器必须始终重新验证所有响应.那么为什么Chrome在使用后退按钮时不会这样做?
是no-store唯一的选择吗?
200 按下后退按钮的响应(来自缓存):

303 在新标签中请求同一页面时的响应:

我的Linux系统上的所有标准共享库(Fedora 9)都将ELFOSABI_NONE(0)指定为OSABI.
这很好 - 但是我收到了供应商的共享库,其中ELF头中给出的OSABI是ELFOSABI_LINUX(3).
这对于用于Linux系统的共享库来说听起来不是一个不合理的值,但是它与我所有其他库的值不同 - 所以当我尝试使用dlopen()从一个库中打开这个库时我的其他库失败,错误"ELF文件操作系统ABI无效".
我编译了FreeBSD实用程序brandelf.c并使用它将OSABI类型更改为0,现在库似乎可以正常运行其他所有内容.
我只是想知道 - 为什么你认为这个库被标记为ELFOSABI_LINUX?我猜它们可能在另一个系统上交叉编译并指定了一些gcc标志,导致这个值被设置到ELF标题中?我试图实现类似的东西,但无法确定适当的gcc标志或标志.
我想知道可能的原因是什么,因为这个特定的供应商在没有大量手持的情况下不会做任何事情,我希望能够说"你可能正在做X但是这意味着我们必须修改你的库在我们收到它们之后".
轮子是一次又一次地发明的 - 至少在查看任何普通的Swing GUI项目时都是如此.
在许多领域,有一两个非常着名的库,用于标准类库不能直接寻址的东西,例如用于持久化的hibernate.
但对于GUI应用程序来说,事情似乎有点不太清楚 - 您认为哪些库对于几乎所有新的GUI项目都是必不可少的?
我建议JGoodies作为开始.对于涉及以图形方式显示数据的任何事情,可能是JFreeChart.对于更复杂的组件SwingX - 我从未使用它,但我听到它经常提到.
我知道Swing有其他选择,但至少可以坚持这个问题.
Swing为任何GUI应用程序提供了基本构建块,但是构建GUI应用程序的更高层次呢?
我不是在询问有关在各种可视组件上提供更多wizzy变体的许多任意库.
我在谈论缺少的部分,每当他们创建除了一个简单的GUI应用程序之外的任何东西时,每个人都会自己构建.
即应用程序特定逻辑构建的框架.
例如,处理数据绑定,应用程序生命周期问题或支持常见事项,如构建表单.
如果我们谈论持久性,你可以说任何人都可以使用javax.sql或java.io类编写自己的持久层 - 但是大多数人宁愿使用像Hibernate这样的东西.
因此,正如有人询问持久性库可能不是在ObjectOutputStream上寻找变体一样,我不是在寻找某些JComponent子类或其他类型的变体.
我认为这是一个公平的Stackoverflow问题,因为与持久性等领域不同,对答案的明确共识并不容易使用Google来确定.
也许人们可以回答Swing没有立即解决哪些GUI问题以及他们认为哪些库最能填补这些差距?
我上周问了一个类似的问题并且它已经关闭了 - 我试图用这句话来说明这个也不会被关闭.如果您愿意关闭它,也许您可能会考虑将其改为社区维基?
我正在与 Jekyll 合作,并希望使用{% include... %}在 Markdown 文件中包含一段 HTML 代码,而无需进一步处理该 HTML,即然后由 Markdown 处理器处理,就好像它只是内联 HMTL 一样。
注意:我使用的是redcarpet markdown(而不是例如 kramdown)。
这可以用 Jekyll 插件处理吗?
我创建了一个 GitHub 存储库md-include-html,其中包含演示我的问题的以下文件。
1._layouts/default.html包含:
<div>
{{ content }}
</div>
Run Code Online (Sandbox Code Playgroud)
2.md-page.md包含:
---
layout: default
---
A
{% include_relative html-snippet.html %}
B
Run Code Online (Sandbox Code Playgroud)
3.html-snippet.html包含:
</div>
<!-- Some arbitrary HTML for {{ page.path }} -->
<div>
Run Code Online (Sandbox Code Playgroud)
请注意,我首先尝试关闭将引入的 div,_layouts/default.html然后在最后打开一个新的 div。
这导致_site/md-page.html:
<div>
<p>A</p>
<p></div>
<!-- Some arbitrary HTML …Run Code Online (Sandbox Code Playgroud) 我想每次单击按钮时都在其上切换文本,例如,从“显示更多...”到“显示更少...”。
我有一个用于扩展或折叠附近街区的按钮(请参见Bootstrap文档的“ 折叠”部分,单击示例“使用href链接”以了解我的意思)。
此类Bootstrap按钮的HTML如下所示:
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample">
See more...
</a>
Run Code Online (Sandbox Code Playgroud)
当相关的块折叠时,我希望按钮文本为例如“显示更多...”,而当其展开时,我希望其文本为例如“显示更少...”。
我已经看到了将按钮文本分成jQuery,Javascript或CSS的解决方案-但这使读取HTML变得困难(按钮文本完全位于按钮的其他位置),并且也使得本地化更加困难。
为什么生成器同时是可迭代器和迭代器是有用/必要的?
我认为可迭代和迭代器是完全不同的,例如集合是可迭代的,这意味着我可以在它上面请求一个迭代器,每次这样做我都会得到一个新的迭代器,它允许我单步遍历整个集合一次。
生成器看起来最像一个迭代器,即一旦你无法用它做任何事情,那么一旦你单步遍历它的元素,但除了实现next()它之外,还实现了 iterable 的 get-iterator 逻辑,但仅此逻辑返回发电机本身:
$ node
> const genFn = function* () { yield *[1, 2, 3]; }
> const gen = genFn();
> gen.next();
{ value: 1, done: false }
> gen == gen[Symbol.iterator]();
true
> for (const val of gen) console.log(val);
2
3
Run Code Online (Sandbox Code Playgroud)
为什么生成器除了是迭代器之外还必须是可迭代的?
只能将具体化的类型参数与内联函数一起使用。所以如果我想要一个类的这样的参数,我需要一个这样的技巧:
class Foo<T : Any>(private val clazz: KClass<T>) {
companion object {
inline fun <reified T: Any> create() = Foo(T::class)
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以创建这样的实例Foo:
val foo = Foo.create<Bar>()
Run Code Online (Sandbox Code Playgroud)
在Foo我可以访问clazz但我的问题是clazz当我需要调用需要具体化类型参数的方法时我可以使用吗?
例如,Foo我想添加一个这样的方法:
fun print(list: List<Alpha>) {
list.filterIsInstance<T>().forEach { print(it) }
}
Run Code Online (Sandbox Code Playgroud)
但据我所知,没有办法从 clazz这里可以用作类型参数的东西。
是的,我知道有一种形式filterIsInstance需要 aClass所以我可以这样做:
list.filterIsInstance(clazz.java).forEach { print(it) }
Run Code Online (Sandbox Code Playgroud)
然而,许多库都包含两种形式(显式类参数和具体化类型参数)的方法 不提供。
例如 Jackson Kotlin Extensions.kt。实际上这不是一个很好的例子,因为非具体化的等价物都是单行的,但情况并非总是如此——然后你最终将具体化类型参数方法的实现解包到你的代码中。
java ×2
javascript ×2
swing ×2
abi ×1
css ×1
elf ×1
frameworks ×1
generator ×1
generics ×1
git ×1
html ×1
http-headers ×1
iterable ×1
iterator ×1
jekyll ×1
jgoodies ×1
jquery ×1
kotlin ×1
kotlin-reified-type-parameters ×1
libraries ×1
linux ×1
markdown ×1
maven-2 ×1
pom.xml ×1
properties ×1
redcarpet ×1
repository ×1
substitution ×1