Hi Robert,
A few comments to look at, which may help.
On 28/05/2019 19:26, Robert Dailey wrote:
On Tue, May 28, 2019 at 8:35 AM Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
On Fri, May 24, 2019 at 12:11 PM Andreas Schwab <schwab@xxxxxxxxxxxxxx> wrote:
On Mai 24 2019, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
Can anyone provide some advice on how to properly restructure this
repository to create some ancestry, as if all along a `master` existed
and all release branches were based on this in a linear fashion?
How about using git replace --graft, then git filter-branch to make it
permanent?
I unfortunately have little-to-no experience with low level plumbing
commands. Could you provide an example of a series of commands to run?
It will help me to figure out how to do it on my own for my specific
use case. Thanks in advance.
Toyed around with it a bit, and tried with the script below. There
were no errors, but I noticed that it erased my `.gitattributes` file
on master that I committed before performing the graft. Why did it
remove the file? I assume I'm not doing this correctly. Please advise.
Thank you.
```sh
#!/usr/bin/env bash
set -ex
if [[ ! -d Native_SDK.git ]]; then
git clone --bare git@xxxxxxxxxx:powervr-graphics/Native_SDK.git
else
cd Native_SDK.git
git fetch
cd -
fi
rm -rf test_repo
git clone Native_SDK.git test_repo
cd test_repo
git checkout -f --orphan new_master
Check here what is in the files system and index - see the caveat in the
man page for the --orphan start point and potential use of `git rm -rf .`
echo '* text=auto' > .gitattributes
Maybe also add some mega comment line to really see it..
git add .gitattributes
git commit -m 'Add gitattributes file'
Check what is actually committed, in case you have more/less than expected.
c=$(git log --oneline origin/3.4 | tail -1 | cut -d ' ' -f 1)
Is this the one you expected (maybe gitk viewer )
git replace --graft $c new_master
Typing "git replace" without arguments, also lists all replace refs. -
check what the new one is. Investigate.
git filter-branch HEAD..origin/3.4
Hmm is this the right range for re-write (not checked, just feels as if
it's wrong). Maybe also need a local branch name for origin/3.4, just
for comparing.
git merge --no-edit --no-ff origin/3.4
```
same again
Hopefully the random thoughts may prompt something.
Philip