[rbe-cas] Fix crash in Merge

Bug: skia:10883
Change-Id: I1361f64dd82f26226c2e4eccf7e519d4d195646d
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/374459
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
diff --git a/go/cas/rbe/rbe.go b/go/cas/rbe/rbe.go
index 70523a8..41cf8f9 100644
--- a/go/cas/rbe/rbe.go
+++ b/go/cas/rbe/rbe.go
@@ -289,7 +289,7 @@
 			children[dir.Name] = merged
 		} else {
 			dirsMap[dir.Name] = dir
-			children[dir.Name] = a.Children[dir.Name]
+			children[dir.Name] = b.Children[dir.Name]
 		}
 	}
 	dirs := make([]*remoteexecution.DirectoryNode, 0, len(dirsMap))
diff --git a/go/cas/rbe/rbe_manual_test.go b/go/cas/rbe/rbe_manual_test.go
index 47635bc..206fc3b 100644
--- a/go/cas/rbe/rbe_manual_test.go
+++ b/go/cas/rbe/rbe_manual_test.go
@@ -172,12 +172,16 @@
 		f(t, wd, "duplicated", "duplicatedcontents", true)
 		d(t, wd, "subdir")
 		f(t, wd, "subdir/subfile", "subfilecontents", false)
+		d(t, wd, "missing-from-tree2")
+		f(t, wd, "missing-from-tree2/somefile", "missing-from-tree2 contents", false)
 	})
 	digest2, tree2 := upload(func(wd string) {
 		f(t, wd, "otherfile", "blahblah", true)
 		f(t, wd, "duplicated", "duplicatedcontents", true)
 		d(t, wd, "subdir")
 		f(t, wd, "subdir/subfile2", "subfilecontents2", false)
+		d(t, wd, "missing-from-tree1")
+		f(t, wd, "missing-from-tree1/somefile", "missing-from-tree1 contents", false)
 	})
 
 	// Merge the digests.