小编Gui*_*ern的帖子

Git推送错误预接收挂钩拒绝

我已经在虚拟机上运行了gitlabhq rails服务器,按照本教程https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md的 1-6步执行并启动rails server execution 命令sudo -u git -H bundle exec rails s -e production.之后我创建了用户,使用管理工具并在此用户下创建了新项目.然后我一直试图将现有项目推送到这个仓库.但在最后一步,git push origin master失败了错误

[远程拒绝]主 - >主(预接收挂钩拒绝)

附加信息:

1)我没有通过电子邮件激活链接激活用户(项目所有者),因为我没有在服务器端配置后期服务,我在本手册中没有找到如何操作的说明.

2)Gitlab服务器生成如何将项目推送到repo并且没有repositories/路径的提示.我的意思是它生成git@mygitlabhost:user/repo.git而不是git@mygitlabhost:repositories/user/repo.git正确的.

3)当我试图调试它,我打开pre-receive里面回购脚本在服务器上,并试图输出变量(有其中3) refs = ARGF.read,key_id = ENV['GL_ID']repo_path = Dir.pwd发现,该KEY_ID总是空的.也许问题就在这里......如果是这样,请给我一些如何解决这个问题的建议.谢谢

githooks gitlab

129
推荐指数
7
解决办法
26万
查看次数

为什么我可以在模式匹配中讨论其中一种模式而不是另一种模式?

我有一个函数有两个参数,我必须模式匹配.如果我在第一个模式上使用currying它将无法编译:

  drop' :: Int -> [a] -> [a] 
  drop' 0  = id -- ghci: "Equations for drop' have different numbers of arguments"
  drop' n (x:xs) = drop' (n-1) xs
Run Code Online (Sandbox Code Playgroud)

编译器提供此输出:

99.hs:106:3:
Equations for drop' have different numbers of arguments
  99.hs:106:3-15
  99.hs:107:3-33
In an equation for `split':
    split xs n
      = (take' n xs, drop' n xs)
      where
          take' 0 _ = []
          take' n (x : xs) = x : take (n - 1) xs
          drop' 0 = id
          drop' …
Run Code Online (Sandbox Code Playgroud)

haskell currying pattern-matching

10
推荐指数
1
解决办法
546
查看次数

如何显示使用“git rebase -i”修改的提交消息中的差异?

我做了一个git rebase -i并重写了一次提交。

如何显示我提交的新提交消息和旧提交消息之间的差异?(例如,来自 中的提交git reflog

git git-diff git-rebase git-commit

5
推荐指数
1
解决办法
54
查看次数

在沙箱中安装parsec,但在尝试加载ghci中的文件时找不到库

tl; dr:用cabal沙箱安装库,ghci仍然抱怨库丢失了

我有一个目录,我正在开发一些Haskell的东西.这曾经在ghc 7.6的另一台计算机上正常工作,但现在我正在使用ghc 7.8.2在另一台计算机上工作(我不知道版本是否重要)我得到这样的错误:

前奏>:l Interpreter.hs

Parser.hs:9:8:找不到模块'Text.ParserCombinators.Parsec'也许你的意思是Text.ParserCombinators.ReadPrec(来自基地)Text.ParserCombinators.ReadP(来自基地)使用-v查看文件列表搜索.

当试图从ghci加载文件时.这些文件位于BASE/src/Lib中,其中BASE是具有LIB.cabal的目录以及所有这些文件.所以我认为有一些东西与cabal.为了避免可怕的'阴谋地狱',我在项目(cabal sandbox init)中制作了一个沙箱,我以前没用过.然后我手动删除了其他与cabal相关的东西并且做了cabal init.我做了cabal install --dependencies-only,但实际上没有安装任何东西(我猜是因为 - 依赖 - 只是?我太偏执于全局安装使用常规cabal安装).所以我尝试手动添加东西到我的.cabal文件(你应该怎么做?),即:

建立,取决于:

base> = 4.7 && <4.8,

containers >=0.5 && <0.6,

-- 

parsec == 3.1.* -- THIS is the line I added
Run Code Online (Sandbox Code Playgroud)

现在我做到了cabal install --dependencies-only.瞧,实际安装的东西,特别是:

[21 of 25]编译Text.Parsec(Text/Parsec.hs,dist/dist-sandbox-a2fe5095/build /Text/Parsec.o)

...

就地注册parsec-3.1.5 ...在/ home/PATHTODIR/Stack中安装库Lang/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.2/parsec-3.1.5注册parsec-3.1. 5 ...已安装parsec-3.1.5

所以我试着在ghci中加载相同的文件,产生相同的错误.请注意,问题是Text.ParserCombinators.Parsec,根据我的运行时间似乎安装得很好cabal install --dependencies-only.这是我得到的输出ghc -v Interpreter.hs:

格拉斯哥Haskell编译器,版本7.8.2,第2阶段由GHC版本7.4.1启动

使用二进制包数据库:/opt/ghc/7.8.2/lib/ghc-7.8.2/package.conf.d/package.cache

有线包ghc-prim映射到ghc-prim-0.3.1.0-948744e1f99cc8bcc7c7d3ba60c7c2d8

有线输入包integer-gmp映射到integer-gmp-0.5.1.0-dc47f6b546fc171f67a7f7d311684a99

有线封装基址映射到base-4.7.0.0-018311399e3b6350d5be3a16b144df9b

有线包rts映射到builtin_rts

有线包模板-haskell映射到template-haskell-2.9.0.0-

dcc8c210fb02937e104bc1784d7b0f06 …

haskell ghc cabal

4
推荐指数
1
解决办法
1593
查看次数

创建一个自定义setxkbmap选项

奇怪的是,这似乎应该已经做过:我想在键盘顶部交换– 键上的数字符号,以便:10

  • 当我按下6键时,*键入而不是6
  • 当我按Shift+时66将显示数字而不是*

我还想进行其他一些修改,但很快发现其他人在使用选项之前setxkbmapcaps:swapescape例如)已经完成了这些布局修改。


鉴于以上所述,这是一个三部分的问题:

  1. 键盘顶行上是否可以交换数字和符号?
  2. 是否存在,无需手动浏览*.lst和中的*.xml文件,有没有办法找出这种情况是否存在/usr/share/X11/xkb/rules/
  3. 最后,如果我要为创建一个选项setxkbmap,那将是一种理想的方法,以及如何将我的选项贡献回社区?

至于问题3:

  • 我试图创建该选项而没有成功(setxkbmap默默地失败了,我甚至对自己的方法都不自信)。
  • 我找不到该项目的托管位置。
  • 除了man setxkbmap涉及该主题的各种博客文章之外,我还无法找到任何有关此主题的文档。

linux keyboard keyboard-layout

4
推荐指数
1
解决办法
1482
查看次数

空字符串不是有效的路径规范

在阅读了Git - git-submodule 文档后,我决定将以前项目中的两个文件导入到新项目的根目录中,因为我不想手动同步这两个文件。但是,当我执行以下命令时出现错误:

$ git submodule add -b master -f --name latexci -- \
    https://github.com/donizyo/LaTeX-Travis.git .
fatal: empty string is not a valid pathspec. please use . instead if you meant to match all paths
usage: git submodule--helper clone [--prefix=<path>] [--quiet] [--reference <repository>] [--name <name>] [--depth <depth>] --url <url> --path <path>

    --prefix <path>       alternative anchor for relative paths
    --path <path>         where the new submodule will be cloned to
    --name <string>       name of the new submodule
    --url <string> …
Run Code Online (Sandbox Code Playgroud)

git git-bash

4
推荐指数
1
解决办法
9775
查看次数

没有从字符串值反序列化的字符串参数构造函数/工厂方法('1074')

我是 Spring DataJPA + REST 项目的新手,我正在尝试从具有 OneToOne 单向关系的参考 EmployerType 执行添加新或编辑 Employer。任务很简单,但我被卡住了。当我尝试添加或编辑数据时,出现此错误:

org.springframework.http.converter.HttpMessageNotReadableException:
Could not read document: Can not construct instance of
tr.mis.domain.EmployerType: no String-argument constructor/factory
method to deserialize from String value ('1074')  at [Source:
java.io.PushbackInputStream@6d856887; line: 1, column: 609] (through
reference chain: tr.mis.domain.Employer["employerType"]); nested
exception is com.fasterxml.jackson.databind.JsonMappingException: Can
not construct instance of tr.mis.domain.EmployerType: no
String-argument constructor/factory method to deserialize from String
value ('1074')
Run Code Online (Sandbox Code Playgroud)

以下是有关课程的信息。

@Entity
@Table(name = "employer")
public class Employer implements Serializable  {
    @GenericGenerator(
            name = "wikiSequenceGenerator",
            strategy = …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc spring-data-jpa spring-boot spring-rest

3
推荐指数
1
解决办法
6496
查看次数

新功能、更新、设计是否在语义提交消息约定中使用 feat: ?

我决定在我的新玩具项目中使用语义提交消息。
我看到了各种类型的语义提交消息。

类型 描述
壮举 用户的新功能,而不是构建脚本的新功能
使固定 为用户修复错误,而不是修复构建脚本
文档 文档的更改
风格 格式、缺少分号等;没有生产代码更改
重构 重构生产代码,例如。重命名变量
测试 添加缺失的测试、重构测试;没有生产代码更改
杂务 更新 grunt 任务等;没有生产代码更改

对于前端工程师的
设计、更新和新功能,它们都使用语义feat:?
没有像design:or 这样的语义update:吗?

commit conventional-commits

3
推荐指数
1
解决办法
4248
查看次数

BigInt和间接:对于小值,在指针上使用指针算法实现BigInt是否可行?

我假设一种语言的实现允许您将指针视为整数,包括对它们执行标准算术.如果由于硬件限制这是不现实的,请告诉我.如果编程语言通常没有这样强大的指针算法,但在实践中是可行的,那么我仍然想知道这种实现BigInt的方法是否可行.

我没有任何低级别的经验 - 例如,使用指针编程 - 编程,因此我在下面的许多假设可能都是错误的.


问:据我所知,实现BigInt - 任意精度/大小整数 - 可能是由动态的整数数组完成的,它会根据需要增长.然后,数据结构可以表示为指向整数数组的指针.但是,假设指针是一个整数,就像数组中的那个,并且可以对该指针进行指针运算,那么通过简单地使用该指针来表示BigInt的值是否可行?然后可以避免小值整数的间接.

由于指针可能是指向整数数组的内存地址的实际指针,因此您必须知道应将其视为指针或整数值.特别是因为它的作用是通过BigInt的生命周期.假设如果指针实际上是指针则将最高有效位设置为1来执行此操作,否则为0.就整数而言,这看起来很简单:在对它做任何事情之前检查是否设置为1.如果不是,那就特别做一些算法,看它是否有溢出,如果有的话,做适当的事情.

但这有一个问题:指针是否使用其全范围指向内存地址?如果是这样,那么似乎没有任何方法可以使用任何位模式来区分整数和指针:每个位模式都是潜在的存储器地址.将指针表示为有符号整数似乎是合理的,但在我看来,如果使得实现更简单,它们也可以表示为无符号整数.

所以,如果指针是签名的; 那么你似乎无法使用指针是整数,为此目的.如果是这样,将BigInt表示为具有两个成员的结构(或记录,如果需要),是否可行(即:与备选方案相比有效); 指向数组的指针和BigInt的值很小时使用的整数?如果指向数组的指针为null,则使用整数.如果没有,请使用指向数组的指针并忽略结构中的int.这使得一个更"膨胀"的数据结构,但它有时可能有助于避免间接,假设您不需要指向此结构的指针并可以将其作为值传递.

另一个问题:这是否在实践中完成?

pointers data-structures

2
推荐指数
1
解决办法
586
查看次数

为变量表示创建数据类型,由所有字母 a..z、小写或大写表示

我想创建一个表示变量的数据类型 Var。变量是 a、b、c...z、小写或大写的字符。

我可以这样写:

data Var = A | B | C -- continues to Z
Run Code Online (Sandbox Code Playgroud)

但我不能写这个:

data Var = a | b | c -- continues to z
Run Code Online (Sandbox Code Playgroud)

大概是因为它们是小写的。有没有一种优雅的方法来制作这种数据类型?

haskell types

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

由于其定义无效,无法重新绑定Cx C以使用haskell模式特定函数

为了在haskell模式下执行保存的特定操作,此页面建议重新C-x C-s绑定要使用的键绑定haskell-mode-save-buffer而不是仅使用标准save-buffer命令:

(define-key haskell-mode-map(kbd"Cx Cs")'haskell-mode-save-buffer)

预期的行为是能够将haskell模式特定的挂钩添加到标准save命令.所以我已将它添加到我的~/.emacs文件中.

但是当我在haskell模式下使用此键绑定时,会发生以下错误:

符号的函数定义为void:haskell-mode-save-buffer

我还在.emacs文件中添加了这一行:

(add-hook'haskell-mode-hook'haskell-mode-save-buffer)

但它没有帮助.我想它似乎没有做任何事情,因为haskell-mode'save-buffers定义是void,所以我想将它添加到东西将无济于事.我也尝试添加该行

(define-key haskell-mode-map(kbd"Cx Cs")'haskell-mode-save-buffer)

haskell-mode.el文件本身(已安装目录(ELPA)中的文件),但我真的不知道这是否有帮助.我不能调试那种东西.

我试图找出是否在haskell-mode中定义了这个函数.M-x describe-variable "haskell-mode-"使用TAB 运行表明它在这组变量中不存在.编辑:正如评论中指出的,我应该describe-function尝试找到这个功能.M-x describe-function "haskell-mode-"使用TAB 运行显示haskell-mode-save-buffer在此处找不到.有趣的是,这里列出了两个似乎暗示能够提供预期功能的功能:

哈斯克尔模式 - 之前保存处理程序

[...]

哈斯克尔模式 - 后保存处理程序

haskell-mode.el文件中搜索"haskell-mode-save-buffer"不会产生任何结果.

在我的结尾有什么问题,我是如何重新绑定密钥的(没有明确提到我应该添加该行.emacs,无论如何,这只是我的假设),或者这是添加钩子的方式到haskell-mode中不再使用的save命令了吗?

emacs emacs24 haskell-mode

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

为什么 C 使用两个单引号来分隔字符文字而不是一个?

C 真的需要两个单引号(撇号)来分隔字符文字而不是一个?

对于字符串文字,我们确实需要分隔开头和结尾,因为字符串的长度不同,但在我看来,我们确实知道 char 文字的长度:单个字符(在源中),如果是两个字符是常规字符转义(前缀\0),如果是八进制文字(前缀\0[0-7]),则为五个字符,等等。

请记住,我正在寻找技术答案,而不是历史答案。它使解析更简单吗?它是否使 70 年代硬件上的解析更简单?它是否允许更好地解析错误消息?像这样的东西。

(大多数受 C 语法启发的语言可能会问同样的问题,因为它们中的大多数似乎使用相同的语法来分隔字符文字。我认为 Jai 编程语言可能是一个例外,因为我似乎记得它只使用了一个问题标记(在开始时),但我不确定。)

一些例子:

  • 'G'
  • '\0'
  • '\0723'

如果我们只在标记的开头使用单引号,它会起作用吗?

  • 'G
  • '\0
  • '\0723

原则上,我们能否在不使语法复杂化的情况下以相同的方式解析这些标记?

我们看到空字节文字和八进制文字具有相同的前缀,但可能没有任何歧义,因为可能没有任何方式'\0紧随其后723可能不是字符文字(至少在我看来)。如果存在歧义,则可以\z改为空字节文字。

是否需要两个单引号才能正确解析字符文字?

c grammar char

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