如何通过GIT与SuiteCRM工作

问题描述 投票:2回答:6

我公司采取了可怕的决定。他们决定用SuiteCRM,有人安装了他们,现在我应该支持和发展它。我们应该定制了很多,当然,这是需要建立多对多的关系,自定义字段,e.t.c.但是...我们如何可以通过混帐做呢?在管理/工作室系统进行任何更改后创建的文件约30-40的变化,这是不可能对它们进行管理。每次修理后,重建有数以百计的变化。它是可怕的。

有没有“正确的方式”与CRM和Git的工作?我试图找到有关的关系,并通过代码,而不是GUI变化领域的文档,并发现了许多不同的指令和方式......它有一个正确的方式?

谢谢。

git version-control crm sugarcrm suitecrm
6个回答
3
投票
  • 正如其他人指出,要使用一个.gitignore文件忽略某些文件和文件夹,例如/*.log /custom/working/cache/upload。此外.ext.php-文件/自定义/模块/生成,并可能可能是混帐仍然未被跟踪。
  • 如果您在使用Studio来添加或更改字段,你就必须也写转储钩/加载数据库表fields_meta_data的内容(提示:使用mysqldump我建议使用--skip-extended-insert --skip-dump-date避免混帐不可维护的转储文件格式)。作为替代方案,你可以将它们转换为vardefs
  • 如果你也想忽略// created: <timestamp>行,你必须看看git-attributes/filters,可能通过一些头痛。如果你找到这个工作解决方案 - 随时分享:)

4
投票

这是不是所有的坏。我一直在使用Git和SVN管理糖业的不同水平年。

这里有一个模板的.gitignore我通常开始:

# Ignore Everything
/*

# Except .htaccess and Config files
!.htaccess
!config.php
!config_override.php
!.gitignore

# Except custom
!/custom/

# but do ignore some of custom and Extensions stuff
/custom/backup
/custom/blowfish
/custom/history
/custom/index.html
/custom/workflow
/custom/modulebuilder
custom/modules/Connectors
/custom/modules/*/Ext
/custom/application/Ext

# and do track custom modules
!/modules/
/modules/*
!/modules/org_MyModule/

请务必记住这最后一节手动跟踪。当你创建一个模块,将其添加到列表中。

如果最终修改的核心文件,无论是bug修复或增强(你应该尽量避免),你可以明确地将它们添加到您的.gitignore

我最终的最大的问题是config.phpconfig_override.php。根据您的环境设置,这些是不是所有的坏,但site_url PARAM需要基于URL的系统改变,这么样的PITA。不要以为你可以跟踪一个或另一个,虽然,因为糖的配置更新过程可以定期和有些不可预测的基础上重写它们。

对于每一个变化导致数十文件更改声明,yes和no。这取决于一点点,但我肯定看到了。有一两件事可以做,以尽量减少这一点是要确保你已经不使用禁用语言。我有,我加入了被跟踪字面上的,没有人在该组织说语言文件数以万计的项目。这不仅是英语。我们配置糖不产生这些和我创建删除这些文件中的差异是如此之大,我们的GUI比较工具不会显示。

what about a database or studio changes in production?

轻松的最大的困难。正如你可能知道无论是在vardef文件和数据库表fields_meta_data,糖店字段信息。

根据您设置了开发/部署,你可以工作这一块的一些方法周围。我将概述几个我所看到的,

  1. 的夜间备份 数据库模式 fields_meta_data 产品目录,产品类别表 用户表(但洗涤user_hash数据) 电子邮件地址表,但仅限于用户

这种方法允许生产的相当不错的发展匹配,但清理一些敏感数据,并且不包括不必要的数据。缺点是,自定义脚本需要被用于(1)处理备份和(2)处理你的开发。环境的备份下载

  1. 使用mysqldump频繁CRON驱动的脚本来备份密钥表(例如configfields_meta_datausers)单个文件,然后检测“实际的变化”(如DIFF配置忽略空白时间戳),如果他们被发现,将提交这些文件掌握。

您可以用手表生产git status输出一个类似的脚本这个配对;我也看到了用于此Inotify。当发现这些变化(再次,生产),它们会自动致力于掌握。

一旦完善,这种方法更加自动,如果您的企业经理人让Studio中的变化甚至会被告知。当您移动提交当地的发展变化,你会发现,你的主人是不一样的起源/主,你能处理潜在的冲突存在。


3
投票

对于Git用suiteCRM做版本控制,你可以使用不同的分支来管理安装文件和代码。如master分公司以管理安装文件和dev分公司来管理你的代码。对于你不想版本控制的文件,只需添加它们在.gitignore

有供大家参考SuiteCRM on github


2
投票

这:.gitignore有效期为SuiteCRM为好。


1
投票

官方suiteCRM的.gitignore文件,你可以复制/粘贴(来源https://github.com/salesagility/SuiteCRM/blob/master/.gitignore

所以,你会全新的回购协议:

1)进入文件夹,做“git的初始化”

2)创建与下面的内容的.gitignore文件

3)添加使用Git添加的所有文件。 (做这最后否则gitignore将无法正常工作)

## First part from https://github.com/github/gitignore/blob/master/SugarCRM.gitignore
# Ignore custom .htaccess stuff.
/.htaccess
# Ignore large parts of the annoying cache directory without breaking things.
cache/*
upload/*
!upload/index.html
# Ignore some files and directories from the custom directory.
custom/
custom/history/*
custom/blowfish/*
custom/modulebuilder/*
custom/working/*
custom/modules/*/Ext/
custom/modules/unified_search_modules_display.php
# Ignore AOD indexes
modules/AOD_Index/Index/*
install/status.json
# Configuration files should be ignored.
/config.php
/config_override.php
/config_si.php
# Connector configuration should also be ignored.
custom/modules/Connectors/connectors/sources/ext/*/*/config.php
# Logs files can safely be ignored.
*.log
## IDE specific items
# Eclipse
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# Emacs
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
.elc
auto-save-list
tramp
# IntelliJ Idea
*.iml
*.ipr
*.iws
.idea/
.phpstorm.meta.php
# NetBeans
nbproject/
# Vim
.*.sw[a-z]
*.un~
Session.vim
tags
# Windows
Thumbs.db
Desktop.ini
.DS_Store
.DS_Store?
# Microsoft Visual Studio
*.sln
*.suo
*.phpproj
# Disytel
lang_cmp.php
.kdev4/
SuiteCRM.kdev4

#Ignore composer vendor folder
vendor/
public/

#Ignore bower_components
bower_components/
node_modules/


#Ignore Sass Generated files in SuiteP
themes/SuiteP/css/*.map
themes/SuiteP/css/*/*.map
themes/SuiteP/css/*/color-palette.css
themes/SuiteP/css/*/variables.css
tests/_output/*


#Ignore browserstack
BrowserStackLocal
browserstack.err
cache/
custom/**/
.sass-cache/
.php_cs.cache

# Ignore testing environment
build/tmp/

0
投票

我们使用PhpStorm内部的产品,它使您能够创建改变列表。我通常使用3更改列表“TODO”,“默认”和“忽略”。这是在其中您可以轻松地过滤掉不需要的东东的其他方式。我们还充分利用的.gitignore的。

如果你正在开发一个Linux / Mac上。你可能会想配置GIT中忽略文件权限的改变。你可以在命令行里这么做:

git config core.fileMode false

有一个关于在SuiteCRM Wiki SuiteCRM文档。

SuiteCRM由吉姆·麦金开发商是一个很好的参考书得到保持关闭。

如果您遇到任何麻烦,那么请放心使用我们的论坛页面。

我们很乐意帮助更多。 :)

© www.soinside.com 2019 - 2024. All rights reserved.