Veracity Q&A home login about faq

I've used a couple DVCS systems before and there always seems to be some minor terminology differences between these terms. What are the SourceGear definitions for heads, leaves and branches? :)

Also, what is the rules for when I run the command "vv update"? If there are two heads for the branch I am on? (Will vv allow a situation to occur?)

Will the command "vv parents", inside my working directory, always return 1 result, which is the revision my working directory is currently at [plus whatever uncommited changes I have made]?

Will the command "vv log -b <branch> --max 1" always return 1 result, which is the revision I would update to if I were to run a "vv update -b <branch>"?

Thank you, Jeff

asked Feb 01 at 16:26

jslutter's gravatar image

jslutter
2165919


Veracity branches are more git-like than hg-like: they're essentially pointers to changesets. They mostly move on their own as you'd expect, but it's also possible to manually move them around. (Veracity also stores the history of branch names, so it knows which changesets have ever belonged to a branch, allowing some hg-like branch behaviors.)

Veracity leaves are the leaves of the version control DAG: nodes with no descendants. Leaves are leaves whether or not there's a named branch involved. 'vv leaves' returns all of these.

A Veracity head is a changeset that a branch currently points to. Usually a head is also a leaf, but not always. 'vv heads' returns all of these. 'vv heads -b <branch>' returns all the heads for <branch>. (The heads command doesn't support a --max argument.)

'vv parents' will tell you the parent(s) of the new changeset you'd create by committing. Usually there's just one, but if you're merging, there's two.

'vv update -b <branch>' will do nothing if the branch is ambiguous. If it resolves to exactly one changeset, it will update the working copy to that changeset. Otherwise, Veracity will force you to specify a changeset in a non-ambiguous way. The same is true when you type just 'vv update' while attached to a branch: nothing happens if the branch is currently ambiguous.

'vv log -b <branch>' will start at the current head(s) of <branch> and walk the DAG, showing info for each changeset encountered. 'vv log -b <branch> --max 1' will show only the first head of <branch>, but it's not really relevant to the behavior of update, as described above.

link

answered Feb 01 at 22:52

Ian%20Olsen's gravatar image

Ian Olsen ♦♦
2.7k93355

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×10
×4

Asked: Feb 01 at 16:26

Seen: 309 times

Last updated: Feb 01 at 22:52

powered by OSQA