DRYing database.yml

http://6brand.com/how-to-manage-your-database-yml.html
Just a little self-reminder on how to DRY my database.yml

login: &login username: username password: password adapter: mysql host: localhost development: database: development_db <<: *login test: database: testing_db <<: *login production: database: production_db <<: *login

It works, but its one of those moments where I got no idea what is going on behind the scene. What does ‘&’ in ‘&login’ represent? What exactly does

<<: *login

do?

I’d appreciate any comments.