func (s *nomsLogTestSuite) TestNomsGraph2() { str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) db, err := spec.GetDatabase(str) s.NoError(err) ba := dataset.NewDataset(db, "ba") ba, err = addCommit(ba, "1") s.NoError(err) bb := dataset.NewDataset(db, "bb") bb, err = addCommit(bb, "10") s.NoError(err) bc := dataset.NewDataset(db, "bc") bc, err = addCommit(bc, "100") s.NoError(err) ba, err = mergeDatasets(ba, bb, "11") s.NoError(err) _, err = mergeDatasets(ba, bc, "101") s.NoError(err) db.Close() res, _ := s.Run(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "ba")}) s.Equal(graphRes2, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "ba")}) s.Equal(diffRes2, res) }
func (s *nomsLogTestSuite) TestNArg() { str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) dsName := "nArgTest" db, err := spec.GetDatabase(str) s.NoError(err) ds := dataset.NewDataset(db, dsName) ds, err = addCommit(ds, "1") h1 := ds.Head().Hash() s.NoError(err) ds, err = addCommit(ds, "2") s.NoError(err) h2 := ds.Head().Hash() ds, err = addCommit(ds, "3") s.NoError(err) h3 := ds.Head().Hash() db.Close() dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, dsName) res, _ := s.Run(main, []string{"log", "-n1", dsSpec}) s.NotContains(res, h1.String()) res, _ = s.Run(main, []string{"log", "-n0", dsSpec}) s.Contains(res, h3.String()) s.Contains(res, h2.String()) s.Contains(res, h1.String()) vSpec := spec.CreateValueSpecString("ldb", s.LdbDir, "#"+h3.String()) res, _ = s.Run(main, []string{"log", "-n1", vSpec}) s.NotContains(res, h1.String()) res, _ = s.Run(main, []string{"log", "-n0", vSpec}) s.Contains(res, h3.String()) s.Contains(res, h2.String()) s.Contains(res, h1.String()) }
func runDs(args []string) int { if toDelete != "" { set, err := spec.GetDataset(toDelete) d.CheckError(err) oldCommitRef, errBool := set.MaybeHeadRef() if !errBool { d.CheckError(fmt.Errorf("Dataset %v not found", set.ID())) } store, err := set.Database().Delete(set.ID()) d.CheckError(err) defer store.Close() fmt.Printf("Deleted dataset %v (was %v)\n\n", set.ID(), oldCommitRef.TargetHash().String()) } else { if len(args) != 1 { d.CheckError(fmt.Errorf("Database arg missing")) } store, err := spec.GetDatabase(args[0]) d.CheckError(err) defer store.Close() store.Datasets().IterAll(func(k, v types.Value) { fmt.Println(k) }) } return 0 }
func (s *nomsLogTestSuite) TestNomsGraph1() { str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) db, err := spec.GetDatabase(str) s.NoError(err) b1 := dataset.NewDataset(db, "b1") b1, err = addCommit(b1, "1") s.NoError(err) b1, err = addCommit(b1, "2") s.NoError(err) b1, err = addCommit(b1, "3") s.NoError(err) b2 := dataset.NewDataset(db, "b2") b2, err = addBranchedDataset(b2, b1, "3.1") s.NoError(err) b1, err = addCommit(b1, "3.2") s.NoError(err) b1, err = addCommit(b1, "3.6") s.NoError(err) b3 := dataset.NewDataset(db, "b3") b3, err = addBranchedDataset(b3, b2, "3.1.3") s.NoError(err) b3, err = addCommit(b3, "3.1.5") s.NoError(err) b3, err = addCommit(b3, "3.1.7") s.NoError(err) b2, err = mergeDatasets(b2, b3, "3.5") s.NoError(err) b2, err = addCommit(b2, "3.7") s.NoError(err) b1, err = mergeDatasets(b1, b2, "4") s.NoError(err) b1, err = addCommit(b1, "5") s.NoError(err) b1, err = addCommit(b1, "6") s.NoError(err) b1, err = addCommit(b1, "7") s.NoError(err) b1.Database().Close() res, _ := s.Run(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "b1")}) s.Equal(graphRes1, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "b1")}) s.Equal(diffRes1, res) }
func (s *bgSuite) TestBlobGet() { blob_bytes := []byte("hello") blob := types.NewBlob(bytes.NewBuffer(blob_bytes)) db, err := spec.GetDatabase(s.TempDir) s.NoError(err) hash := db.WriteValue(blob) db.Close() hash_spec := fmt.Sprintf("%s::#%s", s.TempDir, hash.TargetHash().String()) file_path := filepath.Join(s.TempDir, "out") s.Run(main, []string{hash_spec, file_path}) file_bytes, err := ioutil.ReadFile(file_path) s.NoError(err) s.Equal(blob_bytes, file_bytes) }
func main() { toDelete := flag.String("d", "", "dataset to delete") flag.Usage = func() { fmt.Fprintln(os.Stderr, "Noms dataset management\n") fmt.Fprintln(os.Stderr, "Usage: noms ds [<database> | -d <dataset>]") flag.PrintDefaults() fmt.Fprintf(os.Stderr, "\nFor detailed information on spelling datastores and datasets, see: at https://github.com/attic-labs/noms/blob/master/doc/spelling.md.\n\n") } flag.Parse() if *toDelete != "" { set, err := spec.GetDataset(*toDelete) util.CheckError(err) oldCommitRef, errBool := set.MaybeHeadRef() if !errBool { util.CheckError(fmt.Errorf("Dataset %v not found", set.ID())) } store, err := set.Database().Delete(set.ID()) util.CheckError(err) defer store.Close() fmt.Printf("Deleted dataset %v (was %v)\n\n", set.ID(), oldCommitRef.TargetHash().String()) } else { if flag.NArg() != 1 { flag.Usage() return } store, err := spec.GetDatabase(flag.Arg(0)) util.CheckError(err) defer store.Close() store.Datasets().IterAll(func(k, v types.Value) { fmt.Println(k) }) } }
func (s *nomsLogTestSuite) TestNomsGraph3() { str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) db, err := spec.GetDatabase(str) s.NoError(err) w := dataset.NewDataset(db, "w") w, err = addCommit(w, "1") s.NoError(err) w, err = addCommit(w, "2") s.NoError(err) x := dataset.NewDataset(db, "x") x, err = addBranchedDataset(x, w, "20-x") s.NoError(err) y := dataset.NewDataset(db, "y") y, err = addBranchedDataset(y, w, "200-y") s.NoError(err) z := dataset.NewDataset(db, "z") z, err = addBranchedDataset(z, w, "2000-z") s.NoError(err) w, err = mergeDatasets(w, x, "22-wx") s.NoError(err) w, err = mergeDatasets(w, y, "222-wy") s.NoError(err) _, err = mergeDatasets(w, z, "2222-wz") s.NoError(err) db.Close() res, _ := s.Run(main, []string{"log", "--graph", "--show-value=true", spec.CreateValueSpecString("ldb", s.LdbDir, "w")}) test.EqualsIgnoreHashes(s.T(), graphRes3, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", spec.CreateValueSpecString("ldb", s.LdbDir, "w")}) test.EqualsIgnoreHashes(s.T(), diffRes3, res) }
func (s *nomsLogTestSuite) TestTruncation() { toNomsList := func(l []string) types.List { nv := []types.Value{} for _, v := range l { nv = append(nv, types.String(v)) } return types.NewList(nv...) } str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) db, err := spec.GetDatabase(str) s.NoError(err) t := dataset.NewDataset(db, "truncate") t, err = addCommit(t, "the first line") s.NoError(err) l := []string{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"} _, err = addCommitWithValue(t, toNomsList(l)) s.NoError(err) db.Close() dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, "truncate") res, _ := s.Run(main, []string{"log", "--graph", "--show-value=true", dsSpec}) test.EqualsIgnoreHashes(s.T(), truncRes1, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", dsSpec}) test.EqualsIgnoreHashes(s.T(), diffTrunc1, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=true", "--max-lines=-1", dsSpec}) test.EqualsIgnoreHashes(s.T(), truncRes2, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", "--max-lines=-1", dsSpec}) test.EqualsIgnoreHashes(s.T(), diffTrunc2, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=true", "--max-lines=0", dsSpec}) test.EqualsIgnoreHashes(s.T(), truncRes3, res) res, _ = s.Run(main, []string{"log", "--graph", "--show-value=false", "--max-lines=0", dsSpec}) test.EqualsIgnoreHashes(s.T(), diffTrunc3, res) }
func (s *nomsLogTestSuite) TestEmptyCommit() { str := spec.CreateDatabaseSpecString("ldb", s.LdbDir) db, err := spec.GetDatabase(str) s.NoError(err) ds := dataset.NewDataset(db, "ds1") meta := types.NewStruct("Meta", map[string]types.Value{ "longNameForTest": types.String("Yoo"), "test2": types.String("Hoo"), }) ds, err = ds.Commit(types.String("1"), dataset.CommitOptions{Meta: meta}) s.NoError(err) ds.Commit(types.String("2"), dataset.CommitOptions{}) db.Close() dsSpec := spec.CreateValueSpecString("ldb", s.LdbDir, "ds1") res, _ := s.Run(main, []string{"log", "--show-value=false", dsSpec}) test.EqualsIgnoreHashes(s.T(), metaRes1, res) res, _ = s.Run(main, []string{"log", "--show-value=false", "--oneline", dsSpec}) test.EqualsIgnoreHashes(s.T(), metaRes2, res) }