最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】git和fabric中排除项目根目录下data文件夹而保留某子文件夹中data文件夹

Git crifan 2948浏览 0评论

折腾:

【记录】把合并了基于搜索的兜底对话的产品demo部署到在线环境中

期间,发现是之前项目部署和上传代码期间,在排除项目根目录下的data文件夹(因为其中有几个G的大的数据文件,本地和线上都有,不需要同步上传),而误排除了某个子目录下面的data文件夹

所以现在需要去:

确保能排除掉项目根目录下的data文件夹

同时又不会排除,能保留某个子目录下面的data文件夹

其实是:

项目顶层目录中有个:data文件夹

而此处的子目录中,也有个data文件夹

而.gitignore中加上了:

data/

导致把子目录的data也过滤掉了

而改为:

/data

好像就可以了:

只排除顶层目录中data,而保留子文件夹中data

这个是git管理中忽略掉子目录中的data

而另外fabric

deploy/fabfile.py

去上传同步代码时,之前是:

from patchwork.transfers import rsync

syncExclude = [".DS_Store", "data/", "processData/mysqlQa/output_summary/", "*.log", "*.pyc", "__pycache__"]

syncResp = rsync(

    remoteConn,

    source=syncSource,

    target=syncTarget,

    # Note: be careful to add `delete`, to void to delete unexpected files

    # delete=True,

    exclude=syncExclude)

print("Sync lcoal %s to remote %s while exclude %s -> return %s" %

      (syncSource, syncTarget, syncExclude, syncResp))

其中的data/好像也是排除了子目录中data

现在去改为:

/data

# syncExclude = [".DS_Store", "data/", "processData/mysqlQa/output_summary/", "*.log", "*.pyc", "__pycache__"]

syncExclude = [".DS_Store", "/data", "processData/mysqlQa/output_summary/", "*.log", "*.pyc", "__pycache__"]

看看是否能保留子目录中的data

还真的是可以的:

fab -r deploy upload

.git/objects/pack/pack-c08a9ff6b06afa70c3fac462063991c7099b5250.pack

.git/refs/heads/

.git/refs/heads/master

.git/refs/remotes/origin/

.git/refs/remotes/origin/master

.idea/

.idea/workspace.xml

deploy/

deploy/fabfile.py

nlp/dialog/

nlp/dialog/data/

nlp/dialog/data/__init__.py

nlp/dialog/data/reply.txt

sent 77.71K bytes  received 3.01K bytes  161.43K bytes/sec

total size is 3.09M  speedup is 38.26

(no stderr)

把nlp/dialog/data中的reply.txt上传上去了。

服务器中现在有这个文件了:

[root@xxx-general-01 xx]# ll nlp/dialog/data/

total 4

-rw-r–r– 1 root root   0 May 29 14:57 __init__.py

-rw-r–r– 1 root root 730 May 29 14:57 reply.txt

[root@x-xx-01 xx]# pwd

/root/xx

【总结】

git的.gitignore

fabric中利用patchwork的rsync去同步,在添加exclude参数,要排除掉的文件或文件夹时,

都是:

  • data/

    • 排除掉所有的 data文件夹

      • 除了项目根目录下的data文件夹

      • 其他子文件夹中的data目录也会被排除过滤掉

  • /data

    • 只排除项目根目录下面的data文件夹

    • 其他子目录中的data文件夹,则不会被排除过滤掉

转载请注明:在路上 » 【已解决】git和fabric中排除项目根目录下data文件夹而保留某子文件夹中data文件夹

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.194 seconds, using 22.20MB memory