Haskell 堆栈和版本控制
Haskell stack and version control
我是 Haskell 和 Stack 的新手。使用 stack new
创建新项目时,应将哪些文件签入 git(或任何其他 VCS)?整个目录?
您应该签入 stack.yaml
,package.yaml
(如果您的项目有)或 your-project-name.cabal
(如果没有),以及 Setup.hs
,因为它们对于以可重现的方式构建您的项目是必要的。 src
、app
和 test
目录也应该提交,因为它们原则上是您的源代码所在的位置(当然,如果您愿意,您可以重新安排默认项目的结构这样做)。另一方面,您应该忽略 .stack-work
目录,因为它包含构建输出和其他易变数据。
你可以看看GitHub推荐的Haskell .gitignore
:
dist
dist-*
cabal-dev
*.o
*.hi
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.prof
*.aux
*.hp
*.eventlog
.stack-work/
cabal.project.local
cabal.project.local~
.HTF/
.ghc.environment.*
如果您 运行 stack new --bare yesod-mysql
堆栈模板,它包含以下 .gitignore
:
.stack-work/
yesod-mysql.cabal
*~
我是 Haskell 和 Stack 的新手。使用 stack new
创建新项目时,应将哪些文件签入 git(或任何其他 VCS)?整个目录?
您应该签入 stack.yaml
,package.yaml
(如果您的项目有)或 your-project-name.cabal
(如果没有),以及 Setup.hs
,因为它们对于以可重现的方式构建您的项目是必要的。 src
、app
和 test
目录也应该提交,因为它们原则上是您的源代码所在的位置(当然,如果您愿意,您可以重新安排默认项目的结构这样做)。另一方面,您应该忽略 .stack-work
目录,因为它包含构建输出和其他易变数据。
你可以看看GitHub推荐的Haskell .gitignore
:
dist
dist-*
cabal-dev
*.o
*.hi
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.prof
*.aux
*.hp
*.eventlog
.stack-work/
cabal.project.local
cabal.project.local~
.HTF/
.ghc.environment.*
如果您 运行 stack new --bare yesod-mysql
堆栈模板,它包含以下 .gitignore
:
.stack-work/
yesod-mysql.cabal
*~