Revision: 130
http://svn.sv.gnu.org/viewvc/?view=rev&root=administration&revision=130
Author: agn
Date: 2015-02-11 03:54:06 +0000 (Wed, 11 Feb 2015)
Log Message:
-----------
UsingGit: add 'non-fast-fotward commits' section
Modified Paths:
--------------
trunk/sviki/UsingGit.mdwn
Modified: trunk/sviki/UsingGit.mdwn
===================================================================
--- trunk/sviki/UsingGit.mdwn 2015-02-11 03:52:58 UTC (rev 129)
+++ trunk/sviki/UsingGit.mdwn 2015-02-11 03:54:06 UTC (rev 130)
@@ -347,6 +347,39 @@
For an easier syntax, you can use `git-publish-branch -d`
(<http://git-wt-commit.rubyforge.org/#git-publish-branch>).
+Non-Fast-Forward commits
+------------------------
+
+'non-fast-forward' commits are commits which result in
+rewriting the commit history, leading to lost commits (see
+<http://git-scm.com/docs/git-push#_note_about_fast_forwards> for a technical
+explanation).
+
+In Savannah, non-fast-forward commits are disallowed, for the same reason that
+[[RemovingProject]] is disallowed: to prevent removal of published code.
+Another reason to avoid non-fast-forward commits is to prevent troubles for
+users who already cloned a public repository - as a simple 'pull' will fail
+in their local repository.
+
+Under special circumstances, savannah administrators can temporarily enable
+non-fast-forward commits in a specific repository. Such cases include:
+
+* Newly created project, where there is no existing code, and it is clear
+ the new project administrator accidentally commited wrong code (e.g.
+ <http://savannah.gnu.org/support/?108709>).
+* Accidental commits when it is clear no code will be lost due to enabling
+ non-fast-forwards commits (e.g.
+ <http://lists.gnu.org/archive/html/savannah-users/2015-01/msg00010.html>).
+
+These are done on a case-by-case basis, and enabled only for a short period
+(usually 24 hours). Please write to [email protected] if you need to
+temporarily enable non-fast-forward commits.
+
+An advanced configuration option where non-fast-forward commits are enabled
+for all branches except the `master` branch as been discusssed but is not
+currently implemented (see
+<http://lists.gnu.org/archive/html/savannah-hackers-public/2015-01/msg00011.html>).
+
Links
-----