git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: congif spec in GIT

From
Torsten Bögershausen <tboegi@web.de>
Date
Jul 7, 2012, 18:28 UTC
Message-ID
<4FF87FC0.2080900@web.de>
In-Reply-To
<4FF6D022.10801@itcnetworks.ro>
On 06.07.12 13:46, Radu Manea wrote:
Show 5 quoted lines
> Hi,
>
> Thank you for the detailed presentation posted on git.or.cz site.
>
> One question: is there any equivalent config spec file for GIT as is in ClearCase today?

There are similarities, and differences between git and ClearCase, I can only point out the very basic differences, because the philosophy of these 2 tools is completely different.

CC has a "virtual file system", often mounted on /vobs on Unix, and M:\ (or another drive name) on Windows.

CC simulates a file system, where files are seen according to the config spec. Changing the config spec will change the version of the files seen under /vobs immediately.

If you want a copy of all the files on your local disk, you need to create a "snapshot view". After changing the config spec, the snapshot view needs to be updated.

git always has a "working tree", similar to a "snapshot view" (except for "bare repositories", they correspond to a CC server)

CC uses branches git uses branches

CC uses labels git uses commit ids, A tag may point to a commit id

CC defines for each file/directory which label is used
    When a file is checked out, a branch is created for that file element
   different directories may use different branches
- git uses the same branch for the whole repo
CC uses labels for each directory, whatever the config spec say for that 
very directory.
- git uses a commit id as a base for that branch.

So if try to transform "a branch in git" into a config spec, we do:

$ git status
# On branch my_feature_branch
  (and that branch is defined on the whole working tree, similar to 
/vobs/projects/git/tb)

If I open the "engine bonnet" of git, to see what that means technically, I run on the command line:

$ cat .git/HEAD ref: refs/heads/my_feature_branch (we are on branch my_feature_branch)

When I dig further:

$ cat .git/refs/heads/my_feature_branch a5b0a8ff7f48cfd5ea19712680c64a029e99c2ba

We see that my branch is taking commit a5b08ff7 as a base line

So a "config spec" could include 3 lines, kind of "all files are CHECKOUT/CHECKIN" "All files are based on commit id a5b0a8ff7f48cfd5ea19712680c64a029e99c2ba" "If you commit one or more files at once, they are recorded on branch "my_feature_branch"

HTH /Torsten

Previous: Robin Rosenberg
Message 4 of 4 in “congif spec in GIT”
  1. Radu ManeaJul 6, 2012
  2. Neal KreitzingerJul 6, 2012
  3. Robin RosenbergJul 7, 2012
  4. Torsten BögershausenJul 7, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.