Oil Shell

Oil Shell (OSH) is a Bash-compatible UNIX command-line shell. OSH can be run on most UNIX-like operating systems, including GNU/Linux. It is written in Python (v2.7), but ships with a native executable. The dialect of Bash recognized by OSH is called the OSH language.

Installation

Install the oil package.

Smoke Test

Make sure that OSH has been installed correctly by running the following in a terminal:

$ osh

This will start an OSH session and display a shell prompt:

osh$

Identify an installed binary and attempt to invoke it in the OSH session to confirm that the output is correct.

For example:

osh$ ls
...

Making OSH your default shell

See Command-line shell#Changing your default shell.

Uninstallation

Change the default shell before removing the oil package.

Warning: Failure to follow the below procedure may result in users no longer having access to a working shell.

Run following command:

$ chsh -s /bin/bash user

Use it for every user with osh set as their login shell (including root if needed). When completed, the oil package can be removed.

Alternatively, change the default shell back to Bash by editing /etc/passwd as root.

Warning: It is strongly recommended to use vipw when editing /etc/passwd as it helps prevent invalid entries and/or syntax errors.

For example, change the following:

username:x:1000:1000:Full Name,,,:/home/username:/bin/osh

To this:

username:x:1000:1000:Full Name,,,:/home/username:/bin/bash

Troubleshooting

Reproducible bugs/errors may be reported on Github. When filing a report, please include the output of OSH when it is running in verbose mode. To enable verbose mode, execute the following:

$> export OVM_VERBOSE=1
gollark: This is why you should use osmarks.tk osmarksbrowser.
gollark: Try NodeOS!
gollark: Or Great Information Transfer.
gollark: Git stands for GIT Is Tremendous.
gollark: The stages of git clone are: Receive a "pack" file of all the objects in the repo database Create an index file for the received pack Check out the head revision (for a non-bare repo, obviously)"Resolving deltas" is the message shown for the second stage, indexing the pack file ("git index-pack").Pack files do not have the actual object IDs in them, only the object content. So to determine what the object IDs are, git has to do a decompress+SHA1 of each object in the pack to produce the object ID, which is then written into the index file.An object in a pack file may be stored as a delta i.e. a sequence of changes to make to some other object. In this case, git needs to retrieve the base object, apply the commands and SHA1 the result. The base object itself might have to be derived by applying a sequence of delta commands. (Even though in the case of a clone, the base object will have been encountered already, there is a limit to how many manufactured objects are cached in memory).In summary, the "resolving deltas" stage involves decompressing and checksumming the entire repo database, which not surprisingly takes quite a long time. Presumably decompressing and calculating SHA1s actually takes more time than applying the delta commands.In the case of a subsequent fetch, the received pack file may contain references (as delta object bases) to other objects that the receiving git is expected to already have. In this case, the receiving git actually rewrites the received pack file to include any such referenced objects, so that any stored pack file is self-sufficient. This might be where the message "resolving deltas" originated.

See also

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.