小编dan*_*ann的帖子

如何使用远程主服务器重新定义本地分支

我从远程存储库的master分支克隆了项目remote_repo.我创建了新的分支,我承诺了那个分支.其他程序员推到remote_repo了分支机构.我现在需要将我的分支RB重新绑定到remote_repomaster上.这该怎么做 ?键入终端的命令是什么?

git git-rebase

833
推荐指数
8
解决办法
71万
查看次数

如何在命令行上着色diff?

当我有差异时,我怎样才能将它着色以使其看起来很好?我希望它用于命令行,所以请不要使用GUI解决方案.

unix diff command-line colors

475
推荐指数
11
解决办法
16万
查看次数

接口中的构造函数?

我知道在接口中定义构造函数是不可能的.但我想知道为什么,因为我觉得它可能非常有用.

因此,您可以确保为此接口的每个实现定义了类中的某些字段.

例如,考虑以下消息类:

public class MyMessage {

   public MyMessage(String receiver) {
      this.receiver = receiver;
   }

   private String receiver;

   public void send() {
      //some implementation for sending the mssage to the receiver
   }
}
Run Code Online (Sandbox Code Playgroud)

如果为这个类定义一个接口,以便我可以有更多的类来实现消息接口,那么我只能定义send方法而不是构造函数.那么我怎样才能确保这个类的每个实现都有一个接收器集呢?如果我使用像setReceiver(String receiver)我这样的方法,我不能确定这个方法是否真的被调用.在构造函数中,我可以确保它.

java interface

139
推荐指数
5
解决办法
18万
查看次数

在Docker容器中安装node_modules并将它们与host同步

我有在node_modulesDocker容器内安装并与主机同步的问题.我的Docker的版本是18.03.1-ce, build 9ee9f40和Docker Compose的版本一样1.21.2, build a133471.

docker-compose.yml看起来像:

# Frontend Container.
frontend:
  build: ./app/frontend
  volumes:
    - ./app/frontend:/usr/src/app
    - frontend-node-modules:/usr/src/app/node_modules
  ports:
    - 3000:3000
  environment:
    NODE_ENV: ${ENV}
  command: npm start

# Define all the external volumes.
volumes:
  frontend-node-modules: ~
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile:

# Set the base image.
FROM node:10

# Create and define the working directory.
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# Install the application's dependencies.
COPY package.json ./
COPY package-lock.json ./
RUN npm install …
Run Code Online (Sandbox Code Playgroud)

npm node-modules docker docker-compose

34
推荐指数
5
解决办法
2万
查看次数

找到两个分支的最新合并点

有两个分支,我如何找到两个分支合并的最新版本?是否有标准的Mercurial命令来做到这一点?

这与如何在SVN中找到两个分支的共同祖先的问题相同,但对于Mercurial而不是颠覆.


我不明白为什么Lazy Badger的答案是对的,所以我不得不做一点画,现在我明白了:

当两个分支合并时,它们实际上并未"合并",但是来自一个分支的更改将集成到第二个分支中.这意味着合并提交仅属于原始分支,而不属于合并分支.这就是合并修订是祖先修订的两个孩子之一的原因.

这可能是最好看的图片:

default o----o----a---b---o---o
         \         \
other     `-o---o---m---o

ancestor(default,other) == a
children(ancestor(default,other)) == (b,m)
children(ancestor(default,other)) and merge() == m
Run Code Online (Sandbox Code Playgroud)

mercurial branching-and-merging

23
推荐指数
1
解决办法
5323
查看次数

bash中的条件重定向

我有一个bash脚本,我希望在没有附加tty的情况下保持安静(比如来自cron).我现在正在寻找一种方法,在一行中有条件地将输出重定向到/ dev/null.这是我想到的一个例子,但我将有更多的命令在脚本中输出

#!/bin/bash
# conditional-redirect.sh
if tty -s; then 
  REDIRECT=
else 
  REDIRECT=">& /dev/null"
fi
echo "is this visible?" $REDIRECT
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用:

$ ./conditional-redirect.sh
is this visible?
$ echo "" | ./conditional-redirect.sh 
is this visible? >& /dev/null
Run Code Online (Sandbox Code Playgroud)

我不想做的是复制with-redirection或with-no-redirection变种中的所有命令:

if tty -s; then 
  echo "is this visible?"
else 
  echo "is this visible?" >& /dev/null
fi
Run Code Online (Sandbox Code Playgroud)

编辑:

如果解决方案能够为我提供一种以"安静"模式输出内容的方式,那将是很好的,例如,当某些事情确实出错时,我可能希望从cron获得通知.

bash conditional io-redirection

21
推荐指数
3
解决办法
5914
查看次数

显示组织模式轮廓,直至某个标题级别

我正在使用org-mode为我的论文做一个大纲,我想将所有标题显示到一定的级别(例如所有级别1和级别2标题).

我在组织模式手册中没有找到任何相关信息.骑自行车只显示1级标题或所有标题,这在我的大纲中现在提供的信息太多了.

谢谢,

丹尼尔.

更新:我找到了他的解决方法:设置变量org-cycle-max-level.不过,这是一个全球性的环境.

emacs elisp org-mode

16
推荐指数
2
解决办法
2275
查看次数

为标签和围兜物品创建乳胶标签文件

我正在ctags创建一个用于Vim的标签文件,以便我可以跳转到标签和引文的定义.但是,我有两个问题:

  1. ctags包含\ref在标签文件中,所以当我在\ref标签上跳转时,我不一定跳转到标签的定义,但可能最终会对该标签的另一个引用.
  2. 我希望能够从\cite命令跳转到.bib文件中的相应条目,但ctags不会为此生成条目(我正在使用ctags *.tex *.bib).

我想重新ctags定义tex文件的定义,以便我可以删除\ref条目,但这不起作用.

我的〜/ .ctags文件:

--langdef=tex2
--langmap=tex2:.tex
--regex-tex2=/\\label[ \t]*\*?\{[ \t]*([^}]*)\}/\1/l,label/
Run Code Online (Sandbox Code Playgroud)

vim latex ctags

13
推荐指数
1
解决办法
2086
查看次数

停止JADE系统(Java代理)

我在Java程序中运行JADE,即没有 java jade.Boot ....现在我想停止JADE系统,但我找不到好办法.我可以使用System.exit()退出整个程序,但这不是我想要做的.

我尝试了几个不同的东西,我成功地停止了我的代理行为,但是一些线程继续运行:AMS,DF,Web服务器,JADE Timer调度程序,几个Deliverer线程等.

这是我当前的关闭方法的样子:

  @Override
  public void shutdown() {
    // TODO This does not work yet..
    try {
      for (WeakReference<AgentController> acr : agents) {
        AgentController ac = acr.get(); // jade.wrapper.AgentController 
        if ( ac != null ) ac.kill();
      }
      container.kill(); // jade.wrapper.AgentContainer
      Runtime.instance().shutDown(); // jade.core.Runtime
    } catch ( StaleProxyException e ) {
      e.printStackTrace();
    }
  }
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是我的代理系统有一些JUnit测试.

任何想法如何实现?

java agents-jade

11
推荐指数
1
解决办法
3175
查看次数

为什么Git不将分支名称存储为提交的一部分?

请注意:我不是要重新启动Mercurial或Git更好的论点,我只是有一个技术问题,我作为Mercurial用户,不明白.我也不确定SO是否是提出这样一个问题的正确位置,但它编程相关.

关于两个版本控制系统Git和Mercurial如何从用户的角度来看彼此不同(例如Mercurial和Git之间有什么区别?http://felipec.wordpress.com/2011/01)/16/mercurial-vs-git-its-all-in-the-branches /),主要区别在于分支机构的处理.我已经阅读了很多这些讨论,但我一直在问自己这个问题:

为什么Git不将分支名称存储为提交的一部分?

我真的没有理由不这样做; 这意味着数据不能简单地消失,因为没有参考(标记,分支,等等).

我认为在提交中存储分支是Mercurial的一大优点,因为这会使丢失数据变得更加困难.

Git人群的主要观点是支持Git的分支模型,你可以简单地删除分支,并不会阻止Git在每次提交时存储分支的名称:如果删除了分支的提交,那么对该分支的引用.它也不会干扰"廉价分支"的论点:分支管理起来不会更昂贵.我不认为所需的额外存储应该是值得关注的:每次提交只需几个字节.

git mercurial branch git-branch

11
推荐指数
2
解决办法
1115
查看次数