diff --git a/README.md b/README.md index de67e629..aa2019a6 100644 --- a/README.md +++ b/README.md @@ -5,35 +5,68 @@ A skeleton for a TRIQS application ---------------------------------- -To adapt this skeleton for a new triqs application, the following steps are necessary: +**Caution**: The following instructions require the `util-linux` rename command. +Please confirm that you have the right version by running `rename --version`. +For the Perl rename command see instructions in the following section. + +To adapt this skeleton for a new TRIQS application, the following steps are necessary: * Create a repository, e.g. https://github.com/myuser/mynewapp -* Run the following commands (replacing myuser and mynewapp accordingly) +* Run the following commands in order after replacing myuser, mynewapp and MYNEWAPP accordingly ```bash -git clone https://github.com/triqs/app4triqs --branch unstable mynewapp -cd mynewapp -git remote set-url origin https://github.com/myuser/mynewapp -find . -type f | grep -v .git | xargs sed -i 's/app4triqs/mynewapp/g; s/APP4TRIQS/MYNEWAPP/g' -find . -type d | grep -v .git | xargs rename app4triqs mynewapp -find . -type f | grep -v .git | xargs rename app4triqs mynewapp -git add -A -git commit -m "Create mynewapp from github.com/triqs/app4triqs skeleton" -git push +github_username=myuser +app_name=mynewapp +capital_name=MYNEWAPP + +git clone https://github.com/triqs/app4triqs --branch unstable ${app_name} +cd ${app_name} +git reset $(git commit-tree HEAD\^{tree} -m "Create ${app_name} from github.com/triqs/app4triqs skeleton") +git merge --allow-unrelated-histories -s ours HEAD@{1} -m "Track app4triqs skeleton" +find . -type f | grep -v .git | xargs sed -i 's/app4triqs/${app_name}/g; s/APP4TRIQS/${capital_name}/g' +find . -type d | grep -v .git | xargs rename app4triqs ${app_name} +find . -type f | grep -v .git | xargs rename app4triqs ${app_name} +git add -A && git commit -m "Adjust app4triqs skeleton for ${app_name}" +git remote set-url origin https://github.com/${github_username}/${app_name} +git remote add app4triqs_remote https://github.com/triqs/app4triqs +git remote update && git remote prune origin ``` -Depending on which version of the rename command you are using you may -need to replace the aforementioned rename commands as follows +You can now push to your github repository ```bash -find . -type d | grep -v .git | xargs rename 's/app4triqs/mynewapp/' -find . -type f | grep -v .git | xargs rename 's/app4triqs/mynewapp/' +git push origin unstable ``` +Perl rename command +------------------- + +If you are using the Perl-based rename command you will need to + +```bash +find . -type d | grep -v .git | xargs rename 's/app4triqs/${app_name}/' +find . -type f | grep -v .git | xargs rename 's/app4triqs/${app_name}/' +``` + +Github SSH interface +-------------------- + If you prefer to use the SSH interface to the remote repository, replace the http link accordingly ``` https://github.com/myuser/mynewapp --> git@github.com:myuser/mynewapp ``` + +Merging app4triqs skeleton updates +---------------------------------- + +You can merge future changes to app4triqs into your project with the following commands + +```bash +git remote update +git merge app4triqs_remote -m "Merge latest app4triqs skeleton changes" +``` + +If you should encounter any conflicts resolve them and `git commit`.