map deep merge does not work
my yaml content
.default: &default
mysql: &mysql_default
db_host: mysql.avatar2.test
db_port: 3306
db_user: &mysql_default_user default
db_password: &mysql_default_password secret
redis: &redis_default
cluster:
node:
- host: rediscluster.avatar2.test
port: 7000
- host: rediscluster.avatar2.test
port: 7001
- host: rediscluster.avatar2.test
port: 7002
- host: rediscluster.avatar2.test
port: 7003
- host: rediscluster.avatar2.test
port: 7004
- host: rediscluster.avatar2.test
port: 7005
system:
erp:
<<: *default
mysql:
db_name: erp
actual result
system:
erp:
mysql:
db_name: erp
expect result
system:
erp:
mysql:
db_name: erp
db_host: mysql.avatar2.test
db_port: 3306
db_user: &mysql_default_user default
db_password: &mysql_default_password secret
deep merge does not work
Comments (10)
-
-
reporter
.default: &default mysql: &mysql_default db_host: mysql.avatar2.test db_port: 3306 db_user: &mysql_default_user default db_password: &mysql_default_password secret redis: &redis_default cluster: node: - host: rediscluster.avatar2.test port: 7000 - host: rediscluster.avatar2.test port: 7001 - host: rediscluster.avatar2.test port: 7002 - host: rediscluster.avatar2.test port: 7003 - host: rediscluster.avatar2.test port: 7004 - host: rediscluster.avatar2.test port: 7005 system: erp: <<: *default mysql: db_name: erp
strange, I didn’t find any problems
I delete the chinese characters, please try again
-
Give the YAML to any on-line editor. Chinese is no problem. The problem is missing
&mysql_default_password
-
reporter I will provide a demo repo hosted on github, wait for a while
-
reporter here, https://github.com/jk2K/snakeyamldemo, please try
-
- The project (snakeyamldemo) does NOT output anything related to YAML. It is not heplful
- Please create a pull request for THIS project with a test. It would be helpful
-
reporter you need to debug,
I will try to create a pull request
-
reporter I have created a pull request for this project with a test, https://bitbucket.org/asomov/snakeyaml/pull-requests/3
-
I see the issue now.
According to the spec (https://yaml.org/type/merge.html): Specify one or more mappings to be merged with the current one.
You need to specify merging separately for every mapping.
-
- changed status to invalid
I changed the test to show how it works. Please check the source.
- Log in to comment
The provided YAML document is invalid, it fails to parse. Can you please provide the complete document ?