Thread (9 messages) flat view 9 messages, 4 authors, 2016-06-15

Re: merging unmanaged working tree

From: Chris Packham <hidden>
Date: 2016-06-15 22:48:26

2010/3/15 Łukasz Stelmach [off-list ref]:
Daniel [off-list ref] writes:
quoted
quoted
Is there a method to (dry?) run git-merge to detect conflicts
on:

* current HEAD (or working tree)
* selected previous revision (the one used to "branch")
* directory tree (or a single file) "branched" with git-archive

I'd like to synchronize portable working tree but don't want to keep
history in it.
Does "git-merge --squash" do what you want? You still need to have
the other tree managed by git (even for a while).
Not really. Well, what I want is abit odd so let me try another way

1. There is a repository (non-bare one) with all changes
  commited. Commit A.

2. I take some files put them on my pendrive. I take a note that they come
  from commit A. I don't clone the repository.

3. I make changes here (in the repository) and commit them (commits B,
  C, D) and there (on my pendrive).

4. I want to merge things with something like this

$ git diff3 file1.c(D) file1.c(A) /media/project/file1.c

* file1.c(D) is the lates version in my repository and working tree
* file1.c(A) is the point where I branched
* /media/project/file1.c is the unmanaged version of the file with changes
 I made on the go.

Does git allow to retrieve (to stdout) a particular revision of a single
file? If so I could use "<(git retrieve A file1.c)" bash trick.

Or (this is my goal) is there another way not to keep the whole history
of my repository on the pendrive? Just the changes I made since the
brnaching point. And then clean (yeah squash, but it's not the same I am
afraid) everything after merging.

--
Miłego dnia,
Łukasz Stelmach

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
One option, assuming you do record "Commit A" every time you do this,
would be to use a short lived branch to merge your changes back in.

e.g.

git checkout -b work_from_home <sha of commit a>
cp /media/... .
git status # at this point you can check that what you about to commit
is what you intended, and
git commit -a # if it is good
git checkout master
git merge work_from_home # this is where any conflicts would be resolved
git branch -d work_from_home

The downside with this is that it is very likely that your files will
pick up an executable bit from the file system on your pen drive which
will need to be fixed up before you commit them.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help