Re: newbie with broken workflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux