### Install Iceberg with Bash Script Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/docs/Contributing-to-Iceberg.md Use this script to load Iceberg in Pharo, including development Metacello groups and tests. Ensure you have Git installed for the MINGW64 Bash Console on Windows. ```bash ./scripts/testUpdateIceberg.sh --dev ``` -------------------------------- ### Deploy Wiki Content Source: https://github.com/pharo-vcs/iceberg/wiki/Contributing-to-Iceberg This command deploys markdown files from the 'doc/' directory to the Wiki section. It requires a GitHub Personal Token with repo:write permissions. ```bash export GH_TOKEN=<> && ./scripts/sync-wiki.sh ``` -------------------------------- ### Store Token Credentials Programmatically Source: https://github.com/pharo-vcs/iceberg/wiki/Authentication-Credentials Register token credentials for a specific hostname without using the GUI. Ensure the token has the necessary 'repo' and 'user' permissions. ```Smalltalk IceCredentialStore current storeCredential: (IceTokenCredentials new username: 'your@email.com'; token: '4a01...e072'; yourself) forHostname: 'github.com'. ``` -------------------------------- ### Recover Deleted Class to Previous Version Source: https://github.com/pharo-vcs/iceberg/wiki/Recovering-Code Checkout a specific file to its state in the commit *before* its deletion. The '~1' suffix is crucial for targeting the correct version. ```git git checkout ~1 src// e.g. git checkout b4a285a61~1~1 src/Polymorph-Widgets-Rules/IconShortcutRule.class.st ``` -------------------------------- ### List All Deleted Classes and Their Commits Source: https://github.com/pharo-vcs/iceberg/wiki/Recovering-Code This command lists all deleted classes along with their commit details, useful for identifying the commit ID of a deleted class. ```git git log --diff-filter=D --summary --pretty='format:%cd | %h | %H | %cn%n-> %s%n' ``` -------------------------------- ### Configure Custom SSH Keys for Iceberg Source: https://github.com/pharo-vcs/iceberg/wiki/FAQ Use this snippet to configure Iceberg to use custom SSH keys for authentication, particularly useful on Windows where ssh-agent might not function correctly. Ensure your private key does not have a passphrase. ```Smalltalk IceCredentialsProvider useCustomSsh: true. IceCredentialsProvider sshCredentials publicKey: 'c:\path\to\ssh\id_rsa.pub'; privateKey: 'c:\path\to\ssh\id_rsa' ``` -------------------------------- ### Execute Iceberg Update Script Source: https://github.com/pharo-vcs/iceberg/wiki/Contributing-to-Iceberg Use this bash script to load Iceberg in Pharo, including pre- and post-load actions and the development Metacello group. Ensure you have cloned the repository and checked out the desired branch before execution. ```bash #!/bin/bash # This script is used to update Iceberg in Pharo. # It performs some pre- and post-load actions and loads the development Metacello group. # Clone the repository and checkout the desired branch first. # Example: git clone git@github.com:pharo-project/iceberg.git # cd iceberg # git checkout master # Execute the script with the --dev flag for development mode ./scripts/testUpdateIceberg.sh --dev # After the script completes, open the Pharo UI image # ./pharo-ui Pharo.image ``` -------------------------------- ### Recover a Deleted Class Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/docs/Recovering-Code.md Checkout a previous version of a file to recover a deleted class. Ensure you use the commit ID from *before* the deletion, often indicated by a '~1' suffix. ```git git checkout ~1 src// e.g. git checkout b4a285a61~1~1 src/Polymorph-Widgets-Rules/IconShortcutRule.class.st ``` -------------------------------- ### Export Repository Without Committing Source: https://github.com/pharo-vcs/iceberg/wiki/How-to-help-us,-What-you-could-contribute This backend operation allows exporting repository changes without committing them. It is accessible via the repository's Extras menu. ```Smalltalk repository index updateDiskWorkingCopy: repository workingCopy workingCopyDiff. ``` -------------------------------- ### Find Commit IDs for Class Changes Source: https://github.com/pharo-vcs/iceberg/wiki/Recovering-Code Use this command to trace the commit history of a specific class. It helps in identifying changes made over time. ```git git log --follow src/*/.* e.g. git log --follow src/*/IconShortcutRule.* ``` -------------------------------- ### Squashing multiple commits using Git Rebase Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/git_cookbook.md Interactive rebase to combine several recent commits into a single commit. Useful for cleaning up a messy commit history before pushing. ```git git rebase -i HEAD~4 ``` -------------------------------- ### Restoring local clone to the last commit with Git Reset Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/git_cookbook.md Wipes all local changes and resets the current branch to match the state of the remote branch. Use with caution as it discards uncommitted work. ```git git reset --hard origin/master ``` -------------------------------- ### Fixing a commit on a stale branch with Git Rebase Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/git_cookbook.md Use when you've committed locally before pulling the latest changes. This command rebases your local commits on top of the fetched remote branch. ```git git pull --rebase origin master ``` -------------------------------- ### Changing the author of the last commit with Git Commit Amend Source: https://github.com/pharo-vcs/iceberg/blob/Pharo14/git_cookbook.md Amends the most recent commit to change its author information. Useful for correcting authorship after merging or committing under the wrong identity. ```git git commit --amend --author="John Doe " ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.