On Thu, 3 Apr 2008, James Kingston wrote: > I am a few days into git and have settled into a workflow that is > apparently very broken, and I'd appreciate it if someone with a more > experienced eye can point out where I went wrong. > > The official SCM tool at my work is ClearCase Remote Client, and it's > vile... pessimistic locking, huge bureaucracy just to create a branch > (I love experimental branches), no licenses for the native client. My > plan was to use git (Git-1.5.4-preview20080202.exe) to track my > clearcase view directory, and push changes into that repo when > convenient from my working directory repo (clearcase makes > non-checkedout files read only, which makes working directly in the > view directory Ugly). > > Here is a timeline of how I tried to do this: > > /c> cd /c/cc > /c/cc> git init > /c/cc> git add * > /c/cc> git commit > /c/cc> mkdir /c/wd > /c/cc> cd /c/wd > /c/wd> git clone /c/cc > /c/wd> cd cc/ > /c/wd/cc> ls > /c/wd/cc> vi config.ini > /c/wd/cc> git checkout -b config_changes > /c/wd/cc> git diff > /c/wd/cc> git add config.ini > /c/wd/cc> git commit > /c/wd/cc> git checkout master > /c/wd/cc> git merge config_changes > /c/wd/cc> vi config.ini > /c/wd/cc> git push /c/cc > /c/wd/cc> cd /c/cc > /c/cc> vi config.ini # doesn't show the change made in experimental > branch, though gitk shows the patch > /c/cc> git status # says that config.ini has been modified > /c/cc> git add config.ini # grasping as straws > /c/cc> git commit # changes nothing, as far as I can tell > /c/cc> git reset --hard #still changes nothing. My diffs are there > in the log, just out of reach > > I have much to learn, but in the short term I just need to get those > changes into clearcase so QA can pull them So you should actually do: /c/wd/cc> cd /c/cc /c/cc> git pull ../wd/cc But wouldn't that fail, because the files are read-only? I think you'd do: /c/cc> git fetch ../wd/cc /c/cc> git diff --name-only HEAD FETCH_HEAD Tell ClearCase you want to edit those files /c/cc> git merge FETCH_HEAD Commit your ClearCase stuff Also, IIRC, the sort of normal workflow for dealing with foreign SCMs that need local working directories is actually to put them in .git/info/something, and use git diff to get the changes in each of your git commits and git apply (using it like "patch", but smarter) to modify the working directory. -Daniel *This .sig left intentionally blank* -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html