Visit Our UNIX and Linux User Community

Top Forums Shell Programming and Scripting Making post down hook script for svn regarding sending emails after an file is committed in svn Post 302943866 by sunsun06060606 on Wednesday 13th of May 2015 12:18:36 PM
Old 05-13-2015
Wrench Making post down hook script for svn regarding sending emails after an file is committed in svn

Hi Folks ,

I am asking this question but i apologise please if this is not the correct forum ,

I have to develop a shell script that i want to place in at hooks/post-commit , that is basically i have to develop a post hook script and the main functionality of that script would be lets say if a user commit any piece of code in other words lets say if a user do changes in a file by modifying or by removing any text then when he commits that file in svn repository that script would be executed and it will be sending a mail to an email id mentioned in script and in that mail body there will be text which was removed by user shown in red color and the text that was added by user shown in green color

so the things that shell script consisits of is

email id of reciever
and from where the mail is sent

folks please advise how to develop such script as an example i have seen the ruby script to achieve the same sharing the url for that also...

Code:
http://gurge.com/2006/09/10/subversion-post-commit-email-hook-in-ruby/

Code:
https://mikewest.org/2006/06/subversion-post-commit-hooks-101

but i want to develop the shell script to achieve the same.SmilieSmilie

Folks any early help and advise would be highly appreciated

Last edited by sunsun06060606; 05-14-2015 at 03:53 AM..
 
Test Your Knowledge in Computers #653
Difficulty: Easy
Rocky Raccoon is the mascot of MINIX 3.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX and Linux Applications

svn diff failed (no such file or directory)

I'm on ubuntu fiesty using svn as version control and gvim as my IDE. i like to review changes to files before checking them in. at some point in my life i used " svn diff {path}/{filename} " this now returns Index: {path}/{file}... (5 Replies)
Discussion started by: manic
5 Replies

2. AIX

AIX 6.1 SVN

Can anybody provide me with useful links how to install SVN on AIX 6.1? (10 Replies)
Discussion started by: wwwzviadi
10 Replies

3. UNIX for Advanced & Expert Users

extracting the component names from SVN changes xml file

Hi All, The following is the sample xml which is generated by a tool called HUDSON when ever change occurs in SVN(Sub version namespace). In the given XML , path/paths tags ll be vary depends on no.of changes. now , my requirement is, need a script which can extract the payment and... (1 Reply)
Discussion started by: geervani
1 Replies

4. Ubuntu

svn keyrings

Hello, I have a svn account and can use it easly trought Web browser inserting username and passwd. But I get problems when I wanna do the same via shell, here the output that I get: svn --username myusername co https://address/repo/ . Password for '(null)' GNOME keyring: svn: OPTIONS... (0 Replies)
Discussion started by: Dedalus
0 Replies

5. UNIX for Dummies Questions & Answers

svn question

Hello, This one really stumps me. I checked out a repo to a subdirectory. I created a simple post-commit hook that updates the webserver. A. When I update with the command line everything is fine. B. When I use a GUI program to commit, I get this message in the log: Host key verification... (3 Replies)
Discussion started by: mike628
3 Replies

6. Shell Programming and Scripting

svn check out

If I am transfering a folder from svn location to my unix server with below command, it is working – svn co svn+ssh://bcvxsvxxnp01.corp.ocwen.com/svn/repos/repos/REALResolution/CalcEngine/CalcEngine\ QA/1852011_CalcEngine_v5.1 But when I do below thing – ... (0 Replies)
Discussion started by: thearpit
0 Replies

7. Shell Programming and Scripting

gets all files details committed to svn by a particular user [or all users] since a particular date

Here is a shell for printing committed person's: 1. Revision number 2. Name 3. Date of commit 4. Files committed. 5. committing comment 6. Date I just made for my usage. May be helpful for you too. Do as follows. create a file $ vi svn_get_user_committed_files_details.sh press i... (3 Replies)
Discussion started by: linuxadmin
3 Replies

8. Solaris

How to integrate SVN client to SVN server repository.

Hi, I am new to SVN configuration on Solaris 10.I have installed SVN client version 1.7. bash-3.00# ./svn --version svn, version 1.7.4 (r1295709) compiled Mar 2 2012, 12:59:36 Here my requirement is how to integrate svn client to One of the SVN server repository. My repository... (0 Replies)
Discussion started by: muraliinfy04
0 Replies

9. Shell Programming and Scripting

UNIX command/script svn log to get just the files information

Just need the directory name and files changes information in svn log This is my svn log verbose: svn log -v //test/svn/Demo/branches/HelloWorld/Batch --limit 2 ------------------------------------------------------------------------ r133 | testuser1 | 2013-04-02 18:22:28 -0400 (Tue, 02 Apr... (22 Replies)
Discussion started by: iaav
22 Replies

10. UNIX for Dummies Questions & Answers

Svn update

dear all after a wile that i was able to update my model with ''svn update'', now i can not update my model with that command:mad:. my model is COAWST please see the following error: $ svn update svn: OPTIONS of 'https://coawstmodel.sourcerepo.com/coawstmodel/COAWST': SSL handshake failed:... (1 Reply)
Discussion started by: komijani
1 Replies
GIT-RECEIVE-PACK(1)						    Git Manual						       GIT-RECEIVE-PACK(1)

NAME
git-receive-pack - Receive what is pushed into the repository SYNOPSIS
git-receive-pack <directory> DESCRIPTION
Invoked by git send-pack and updates the repository with the information fed from the remote end. This command is usually not invoked directly by the end user. The UI for the protocol is on the git send-pack side, and the program pair is meant to be used to push updates to remote repository. For pull operations, see git-fetch-pack(1). The command allows for creation and fast-forwarding of sha1 refs (heads/tags) on the remote end (strictly speaking, it is the local end git-receive-pack runs, but to the user who is sitting at the send-pack end, it is updating the remote. Confused?) There are other real-world examples of using update and post-update hooks found in the Documentation/howto directory. git-receive-pack honours the receive.denyNonFastForwards config option, which tells it if updates to a ref should be denied if they are not fast-forwards. OPTIONS
<directory> The repository to sync into. PRE-RECEIVE HOOK Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists and is executable, it will be invoked once with no parameters. The standard input of the hook will be one line per ref to be updated: sha1-old SP sha1-new SP refname LF The refname value is relative to $GIT_DIR; e.g. for the master head this is "refs/heads/master". The two sha1 values before each refname are the object names for the refname before and after the update. Refs to be created will have sha1-old equal to 0{40}, while refs to be deleted will have sha1-new equal to 0{40}, otherwise sha1-old and sha1-new should be valid objects in the repository. This hook is called before any refname is updated and before any fast-forward checks are performed. If the pre-receive hook exits with a non-zero exit status no updates will be performed, and the update, post-receive and post-update hooks will not be invoked either. This can be useful to quickly bail out if the update is not to be supported. UPDATE HOOK
Before each ref is updated, if $GIT_DIR/hooks/update file exists and is executable, it is invoked once per ref, with three parameters: $GIT_DIR/hooks/update refname sha1-old sha1-new The refname parameter is relative to $GIT_DIR; e.g. for the master head this is "refs/heads/master". The two sha1 arguments are the object names for the refname before and after the update. Note that the hook is called before the refname is updated, so either sha1-old is 0{40} (meaning there is no such ref yet), or it should match what is recorded in refname. The hook should exit with non-zero status if it wants to disallow updating the named ref. Otherwise it should exit with zero. Successful execution (a zero exit status) of this hook does not ensure the ref will actually be updated, it is only a prerequisite. As such it is not a good idea to send notices (e.g. email) from this hook. Consider using the post-receive hook instead. POST-RECEIVE HOOK After all refs were updated (or attempted to be updated), if any ref update was successful, and if $GIT_DIR/hooks/post-receive file exists and is executable, it will be invoked once with no parameters. The standard input of the hook will be one line for each successfully updated ref: sha1-old SP sha1-new SP refname LF The refname value is relative to $GIT_DIR; e.g. for the master head this is "refs/heads/master". The two sha1 values before each refname are the object names for the refname before and after the update. Refs that were created will have sha1-old equal to 0{40}, while refs that were deleted will have sha1-new equal to 0{40}, otherwise sha1-old and sha1-new should be valid objects in the repository. Using this hook, it is easy to generate mails describing the updates to the repository. This example script sends one mail message per ref listing the commits pushed to the repository: #!/bin/sh # mail out commit update information. while read oval nval ref do if expr "$oval" : '0*$' >/dev/null then echo "Created a new ref, with the following commits:" git rev-list --pretty "$nval" else echo "New commits:" git rev-list --pretty "$nval" "^$oval" fi | mail -s "Changes to ref $ref" commit-list@mydomain done exit 0 The exit code from this hook invocation is ignored, however a non-zero exit code will generate an error message. Note that it is possible for refname to not have sha1-new when this hook runs. This can easily occur if another user modifies the ref after it was updated by git-receive-pack, but before the hook was able to evaluate it. It is recommended that hooks rely on sha1-new rather than the current value of refname. POST-UPDATE HOOK After all other processing, if at least one ref was updated, and if $GIT_DIR/hooks/post-update file exists and is executable, then post-update will be called with the list of refs that have been updated. This can be used to implement any repository wide cleanup tasks. The exit code from this hook invocation is ignored; the only thing left for git-receive-pack to do at that point is to exit itself anyway. This hook can be used, for example, to run git update-server-info if the repository is packed and is served via a dumb transport. #!/bin/sh exec git update-server-info SEE ALSO
git-send-pack(1), gitnamespaces(7) GIT
Part of the git(1) suite Git 1.8.3.1 06/10/2014 GIT-RECEIVE-PACK(1)

Featured Tech Videos

All times are GMT -4. The time now is 09:57 AM.
Unix & Linux Forums Content Copyright 1993-2021. All Rights Reserved.
Privacy Policy