Index: subversion/include/svn_subst.h
===================================================================
--- subversion/include/svn_subst.h	(revision 10373)
+++ subversion/include/svn_subst.h	(working copy)
@@ -83,6 +83,7 @@
   const svn_string_t *author;
   const svn_string_t *url;
   const svn_string_t *id;
+  const svn_string_t *header;
 } svn_subst_keywords_t;
 
 
Index: subversion/include/svn_types.h
===================================================================
--- subversion/include/svn_types.h	(revision 10373)
+++ subversion/include/svn_types.h	(working copy)
@@ -283,6 +283,9 @@
  */
 #define SVN_KEYWORD_ID               "Id"
 
+/** A dearly missing Header */
+#define SVN_KEYWORD_HEADER           "Header"
+
 /** @} */
 
 
Index: subversion/libsvn_subr/subst.c
===================================================================
--- subversion/libsvn_subr/subst.c	(revision 10373)
+++ subversion/libsvn_subr/subst.c	(working copy)
@@ -183,6 +183,19 @@
                                        human_date ? human_date : "",
                                        author ? author : "");
         }
+      else if ((! strcasecmp (keyword, SVN_KEYWORD_HEADER)))
+        {
+          const char *human_date = NULL;
+
+          if (date)
+            SVN_ERR (date_prop_to_human (&human_date, FALSE, date, pool));
+
+          kw->header = svn_string_createf (pool, "%s %s %s %s",
+					   (url ? url : ""),
+					   rev,
+					   human_date ? human_date : "",
+					   author ? author : "");
+        }
     }
 
   return SVN_NO_ERROR;
@@ -420,6 +433,16 @@
         return TRUE;
     }
 
+  /* Header */
+  if (keywords->header)
+    {
+      if (translate_keyword_subst (buf, len,
+                                   SVN_KEYWORD_HEADER,
+                                   (sizeof (SVN_KEYWORD_HEADER)) - 1,
+                                   expand ? keywords->header : NULL))
+        return TRUE;
+    }
+
   /* No translations were successful.  Return FALSE. */
   return FALSE;
 }
Index: subversion/clients/cmdline/main.c
===================================================================
--- subversion/clients/cmdline/main.c	(revision 10373)
+++ subversion/clients/cmdline/main.c	(working copy)
@@ -520,6 +520,7 @@
        "      Id                       - A compressed summary of the "
        "previous\n"
        "                                   4 keywords.\n"
+       "      Header                   - Same as Id but with full file URL\n"
        "    svn:executable - If present, make the file executable. This\n"
        "      property cannot be set on a directory.  A non-recursive "
        "attempt\n"
Index: subversion/tests/libsvn_wc/translate-test.c
===================================================================
--- subversion/tests/libsvn_wc/translate-test.c	(revision 10373)
+++ subversion/tests/libsvn_wc/translate-test.c	(working copy)
@@ -281,6 +281,7 @@
   keywords.author   = author ? svn_string_create (author, pool) : NULL;
   keywords.url      = url    ? svn_string_create (url, pool)    : NULL;
   keywords.id       = NULL;
+  keywords.header   = NULL;
 
   err = svn_subst_copy_and_translate (src_fname, dst_fname, dst_eol, repair,
                                       &keywords, expand, pool);


