{"id":1554,"date":"2017-12-04T12:03:28","date_gmt":"2017-12-04T12:03:28","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=1554"},"modified":"2025-02-01T22:39:40","modified_gmt":"2025-02-01T22:39:40","slug":"determining-the-last-changelist-synced-to-in-perforce","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/determining-the-last-changelist-synced-to-in-perforce\/","title":{"rendered":"Determining the last changelist synced to in Perforce"},"content":{"rendered":"<p><strong>rajeshkumar created the topic: Determining the last changelist synced to in Perforce<\/strong><br \/>\n7 down vote accepted<\/p>\n<p>The simple answer is:<\/p>\n<p>p4 changes -l &#8220;&#8230;#&gt;have&#8221;<\/p>\n<p>You need the quotes to avoid your shell doing redirection.<\/p>\n<p>You can trivially iterate over the changes and call &#8220;p4 describe&#8221; on each one.<\/p>\n<p>You can get a full diff by using &#8220;p4 diff2&#8221; (assuming you want a unidiff):<\/p>\n<p>p4 diff2 -du &#8230;#have &#8230;#head<\/p>\n<p>But that doesn&#8217;t give you a per-changelist diff.<\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/4139076\/how-...c-directory-by-non-l\" target=\"_blank\" rel=\"noopener\">stackoverflow.com\/questions\/4139076\/how-&#8230;c-directory-by-non-l <\/a><\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/47007\/determ...ynced-to-in-perforce\" target=\"_blank\" rel=\"noopener\">stackoverflow.com\/questions\/47007\/determ&#8230;ynced-to-in-perforce <\/a><\/p>\n<p><a href=\"http:\/\/answers.perforce.com\/articles\/KB_Article...elist-of-a-Workspace\" target=\"_blank\" rel=\"noopener\">answers.perforce.com\/articles\/KB_Article&#8230;elist-of-a-Workspace<\/a><br \/>\nRegards,<br \/>\nRajesh Kumar<br \/>\nTwitt me @ twitter.com\/RajeshKumarIn<\/p>\n","protected":false},"excerpt":{"rendered":"<p>rajeshkumar created the topic: Determining the last changelist synced to in Perforce 7 down vote accepted The simple answer is: p4 changes -l &#8220;&#8230;#&gt;have&#8221; You need the quotes to avoid&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[370],"tags":[373],"class_list":["post-1554","post","type-post","status-publish","format-standard","hentry","category-perforce","tag-perforce"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=1554"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1554\/revisions"}],"predecessor-version":[{"id":5425,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1554\/revisions\/5425"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=1554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=1554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=1554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}