$Id: ... 이게 무슨 키워드일까요?

송지석의 이미지

프로그램이라 보기엔 좀 뭐한데.. 그렇다고 어디에 질문할 지 모르겠네요.

드라이버 코드를 좀 봤더니

#
# linux/drivers/nand/Makefile
#
# $Id: Makefile,v 1.5 2001/09/19 22:39:59 dwmw2 Exp $

이렇게 된 부분이 있더군요,

C 소스에서도 비슷하게 주석문에 싸여 있는 $Id... 부분이 있는데요

이부분이 어떤 의미지요? 컴파일러에서 이 내용을 알아보는 건가요?

익명 사용자의 이미지

$...$는 CVS 태그라고 해서 커밋할 때마다 해당 정보가 삽입되는 부분입니다. $Id$의 경우 커밋을 하고 나면 $Id: ntdll.c,v 1.28 2003/01/19 15:39:57 junyoung Exp $처럼 전개가 됩니다. 그외 $Log$나 $Header$, $Date$ 등 여러가지가 있으니 CVS 매뉴얼을 참조하시면 됩니다.

pynoos의 이미지

첨언하자면,

static const char * progid = "$Id$";

형태로 작성하여 object code에 static 으로 들어가게 되면, 나중에

ident 라는 명령으로 뽑아 볼 수 있습니다.

ident /bin/csh

와 같은 방법으로 사용하죠.

dubhe의 이미지

CVS는 아니고 RCS입니다.

버전관리 체계죠.

CVS에서 RCS를 지원해주는걸로 알고있습니다. CVS가 RCS를 호환한다고 하는게 더 정확한가....

rcs ci co ident명령보시면 됩니다.

(어느 언어의 코드에나 그저 주석처리하는곳에 넣거나 할수 있어서 이식성이 좋습니다.)

송지석의 이미지

방준영 wrote:
$...$는 CVS 태그라고 해서 커밋할 때마다 해당 정보가 삽입되는 부분입니다. $Id$의 경우 커밋을 하고 나면 $Id: ntdll.c,v 1.28 2003/01/19 15:39:57 junyoung Exp $처럼 전개가 됩니다. 그외 $Log$나 $Header$, $Date$ 등 여러가지가 있으니 CVS 매뉴얼을 참조하시면 됩니다.

질문에 꼬리를 물어서 죄송합니다.
음 그렇다면, 맨 처음 코딩할 때는 $Id$ 라고 써넣고 커밋하면 repository에 $Id: ntdll.c,v 1.28 2003/01/19 15:39:57 junyoung Exp $ 로 저장되고
다음부터는 커밋할 때마다 날짜와 버전이 바뀌어 들어가는 것인가요?
pynoos의 이미지

그렇지요...

commit 할 때, CVS repository에도 그렇게 들어가고, local copy도 내용이 바뀌어 들어 오기 때문에,

혹시 vim을 background로 해놓은 상황에서, commit 한뒤 vim으로 돌아오면,

reload 할 것이냐고 물어봅니다.

그러면, undo가 모두 사라지는 뼈아픈 고통이....

또 첨언하자면,

저같은 경우는 /CVSROOT/commitinfo 를 수정하여, indent 라는 (ident 아님) 자동 들여쓰기를 하는데... 이것또한 편리한 기능이죠.

익명 사용자의 이미지

pynoos wrote:
혹시 vim을 background로 해놓은 상황에서, commit 한뒤 vim으로 돌아오면,

reload 할 것이냐고 물어봅니다.

그러면, undo가 모두 사라지는 뼈아픈 고통이....


저는 다른 에디터를 쓰는데, reload 순간 착각을 해서 작업 내용을 홀랑 날려버린 경우도 종종 있었습니다. 그러고 나면 그날은 일 다했죠...
익명 사용자의 이미지

그런데 이 CVS 태그의 짜증나는 점은 남의 소스를 수입할 때 원본 소스의 태그가 전부 초기화된다는 점입니다. 수입할 때 태그 확장 안하도록 옵션을 주는 것도 가능하지만 그렇게 되면 제가 붙이는 태그까지 동작을 안하게되는 문제가 있고요.

그와 같은 혼동을 피하기 위해 $NetBSD$, $FreeBSD$처럼 전용 태그를 붙여 쓸 수도 있습니다. 단, 이 기능은 비표준이라 각 OS 버전들마다 설정 방법이 다릅니다.

hey의 이미지

$Id$ 태그를 넣었는데
시간이 표준시로 나오는거 같네요.
GMT+9 하려면 어딜 고쳐야 하나요?


----------------------------
May the F/OSS be with you..


hey의 이미지

생각해보니 GMT로 하는게 맞는 것 같네요..
:oops:


----------------------------
May the F/OSS be with you..


댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.